App中难免会用到第三方导航,使用前就要判断用户是否安装这个App。
参考
- 插件准备
- cordova plugin add cordova-plugin-appavailability --save //检测是否存在第三方App
- cordova plugin add cordova-plugin-device //检测基本平台信息
- config.xml 设置(未做必须测试)
//ios
<allow-intent href="baidumap://*/*" />
//android
<allow-intent href="bdapp://*/*" />
- 平台判断(android和ios需要区分)
if(device.platform === 'iOS') {
//ios 这里只做iPhone的判断 不考虑android 这一步不写也行
}
else if(device.platform === 'Android') {
//android
}
- 检测方法
function checkButton(){
// Don't forget to add the cordova-plugin-device plugin for `device.platform`
if(device.platform === 'iOS') {
scheme = 'baidumap://'; // 注意这个地方和config.xml刚刚添加的
}
else if(device.platform === 'Android') {
scheme = 'com.baidu.BaiduMap';
}
appAvailability.check(
scheme, // URI Scheme or Package Name
function() { // Success callback
alert(scheme + ' is available :)');
var sApp = startApp.set("baidumap://");
sApp.start(function() { /* success */
alert("OK");
}, function(error) { /* fail */
alert(error);
});
},
function() { // Error callback
alert(scheme + ' is not available :(');
}
);
}
- 对于ios9+需要配置白名单,否则检测无效:!!!
在`resource`文件夹找到info.plist 添加如下图所示