h5打开APP,如果未下载跳转下载页,如果已下载唤醒APP

安卓:

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
直接粘贴到浏览器里面就可以打开了
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值