H5唤醒app并跳转到指定页面

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37678565/article/details/68491444
在manifest文件中最开始启动的activity中添加:

 <intent-filter>
        <action android:name="android.intent.action.VIEW" />

        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />

        <data
            android:host="host"
            android:pathPrefix="/pathPrefix"
            android:scheme="scheme" />
    </intent-filter>
//注意host,pathPrefix,scheme都是自己自定义的,只要与h5页面调用的一致即可,如下所示
<activity
    android:name=".activitys.MainActivity"
    android:label="@string/app_name"
    android:screenOrientation="portrait">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />

        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />

        <data
            android:host="host"
            android:pathPrefix="/pathPrefix"
            android:scheme="scheme" />
    </intent-filter>
</activity>

如果要跳转到指定的页面,在MainActivity的onCreate()中添加:
Intent intent = getIntent();
Uri uri = intent.getData();
if (uri != null) {
        String routeId = uri.getQueryParameter("pid");
        Intent intent0 = new Intent(MainActivity.this, ZhidingActivity.class);
        startActivity(intent0);
}





uri.getQueryParameter("pid");获取h5页面传递的参数,如果没有的话可以忽略
注意一点,微信上对于app的唤醒有拦截,在浏览器中才可以起作用


对于h5的代码如下: 
  1. <span style="font-size:18px;"><script>  
  2. function startAPP(){  
  3. window.location = "scheme://host/pathPrefix";  
  4. }  
  5. function downloadAPP(){  
  6. window.location = "apk下载地址";  
  7. }  
  8.   
  9. </script>  
  10. <style type="text/css">  
  11.         body{background:#D2D460;text-align:center;margin-top:10%}  
  12.         div{width:100%;margin:0 auto;background:#fff;text-align:left;}  
  13. </style>  
  14. </head>  
  15. <body>  
  16.   
  17. <?php   
  18. $var_name =  $_GET["isappinstalled"];   
  19. if ($var_name=="1"){  
  20.     echo '<img src=images/start.png alt=打开APP οnclick=startAPP() ></img>';  
  21. }else if ($var_name=="0"){  
  22.     echo '<img src=images/download.png alt=打开APP οnclick=downloadAPP() ></img>';  
  23. }else{  
  24.     echo '<img src=images/welcome.png alt=打开APP οnclick=startAPP() ></img>';  
  25. }  
  26. ?>  
  27.   
  28. </body></span> 
一定要注意:
window.location = "scheme://host/pathPrefix"
scheme,host,pathPrefix一定要与android定义的一致
如果要传递参数的话:在后面拼接?pid=...即可

展开阅读全文

没有更多推荐了,返回首页