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的代码如下:
<span style="font-size:18px;"><script>
function startAPP(){
window.location = "scheme://host/pathPrefix";
}
function downloadAPP(){
window.location = "apk下载地址";
}
</script>
<style type="text/css">
body{background:#D2D460;text-align:center;margin-top:10%}
div{width:100%;margin:0 auto;background:#fff;text-align:left;}
</style>
</head>
<body>
<?php
$var_name = $_GET["isappinstalled"];
if ($var_name=="1"){
echo '<img src=images/start.png alt=打开APP onclick=startAPP() ></img>';
}else if ($var_name=="0"){
echo '<img src=images/download.png alt=打开APP onclick=downloadAPP() ></img>';
}else{
echo '<img src=images/welcome.png alt=打开APP onclick=startAPP() ></img>';
}
?>
</body></span>
一定要注意:
window.location = "scheme://host/pathPrefix";
scheme,host,pathPrefix一定要与android定义的一致
如果要传递参数的话:在后面拼接?pid=...即可
---------------------
作者:又宠又烦的Android女
来源:CSDN
原文:https://blog.csdn.net/m0_37678565/article/details/68491444
版权声明:本文为博主原创文章,转载请附上博文链接!