需要H5唤醒App看这篇文章:H5唤醒App
需求:公司的app跳转公司的另一个app
注意看注释!!!
注意看注释!!!
注意看注释!!!
如何实现呢,首先你要理解一下的东西
Android平台设置UrlSchemes,实现被第三方应用调用
iOS平台设置UrlSchemes,实现被第三方应用调用
iOS平台设置应用访问白名单(LSApplicationQueriesSchemes)
判断第三方程序是否已存在
调用第三方程序
调用第三方程序打开指定的URL
plus.os.name,返回你手机是安卓还是苹果
问题:
判断第三方程序是否存在的isApplicationExist,ios系统判断本公司的app是一直不存在的,不知道什么原因,安卓是可以的
逻辑:
1.首先判断是手机是安卓还是ios
2.在判断是你手机有没有这款app
3.有就打开,没有就下载
配置:
下面我会说,A款app,B款app,便于分开,实现A款app跳转B款app
- 首先配置B款app的Schemes,分为ios很Android配置
路径:manifest.json—源码视图—app-plus—distribute(下面有ios,Android)
(1) Android
(2)ios
2. 配置A款app
路径:manifest.json—源码视图—app-plus—distribute(下面有ios,Android)
我们只要配置A款app的ios白名单就行,白名单是要跳转过去的app的urlschemes
实现
A款app跳转B款app
if (plus.os.name == "Android") { //安卓if (plus.runtime.isApplicationExist({ //查看安卓系统手机有没有下载这款apppname: 'com.iss.xxxx', //B款app云打包的包名})) { //安装了appplus.runtime.launchApplication({ //打开apppname: "com.iss.xxxx", //B款app云打包的包名extra: {url: "wswl://com.iss.xxxx" //B款app配置的schemes+云打包的包名},function(e) {console.log("Open system default browser failed: " + e.message);}})}else { //未安装appplus.runtime.openURL('https://a.app.qq.com/o/simple.jsp?pkgname=xxxx', function(res) { //进入后台小哥哥给我的应用宝下载链接,让你们后台给你//这链接会判断你手机是ios还是Android,Android进入应用宝下载app//跟下面的是一个链接console.log(res);});}} else if (plus.os.name == "iOS") { //苹果//因为ios查不到B款app在ios系统手机里面,其实下载了,也是检测不到,所以就不检测了//直接打开B款app,B款app没有的话,会进入回调报错,我们在回调去打开下载链接plus.runtime.launchApplication({action: "wswl://"}, function(e) {plus.runtime.openURL('https://a.app.qq.com/o/simple.jsp?pkgname=xxxx', function(res) { //进入后台小哥哥给我的appStore下载app链接,,让你们后台给你//这链接会判断你手机是ios还是Android,ios进入应用宝下载app//跟上面的是一个链接console.log(res);});});}
总结
1.B款app需要:Android配置schemes,ios配置urlschemes和urlidentifier(包名)
2.A款app需要:ios配置跳转B款app白名单urlschemewhitelist