需要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({ //查看安卓系统手机有没有下载这款app
pname: 'com.iss.xxxx', //B款app云打包的包名
})) { //安装了app
plus.runtime.launchApplication({ //打开app
pname: "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 { //未安装app
plus.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