安卓:
h5唤醒安卓:
安卓配置:
<activity android:name=".TestActivity">
<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:scheme="myapp"
android:host="myhost">
</data>
</intent-filter>
</activity>
构件intent字符串:
intent:
myhost // 特定的schema uri,例如login表示打开app 原生登陆页
#Intent;
package=com.lcp.testweb; // apk包名
action=android.intent.action.VIEW; // 页面action
category=android.intent.category.DEFAULT; // 页面类型
scheme=myapp; // 协议类型
S.browser_fallback_url=https://www.baidu.com //可选,schema启动客户端失败时的跳转页,一般为下载页,需通过encodeURIComponent编码
end;
h5:
构造一个a标签,将上面schame 字符串作为其href值,当点击a标签时,即为通过schema打开某客户端登陆页,如果未安装客户端,则会跳转到指定页,这里会跳转到下载页
<a href="intent://myhost#Intent;scheme=myapp;package=com.lcp.testweb;category=android.intent.category.DEFAULT;action=android.intent.action.VIEW;S.browser_fallback_url=http%3A%2F%2Fwww.baidu.com;end">打开test</a>
如果需要配置能被js调起,一定要配置下面这句
<category android:name="android.intent.category.BROWSABLE"></category>
没有下载就跳转下载页,如果已经下载就唤醒APP解决方案 如果没下载,就打不开,延时5秒检测如果浏览器被退到后台,就说明打开了app,如果5秒后浏览器没被置后台说明没跳转成功,就说明没安装
此处为准备了一份案例:你可以点击此处下来
IOS:
[scheme]://[host]/[path]?[query]
scheme由 ios同学提供
例如:
myapp://fanyi.baidu.com/translate?aldtype=16047
直接粘贴到浏览器里面就可以打开了
|