cordova 帮助webapp 达到调用原生系统的功能
项目需求:在项目中调用系统中含有的第三方地图应用
需求其实分为两步:
1. 查找本地地图应用
2.成功调起本地应用
首先需要安装两个插件,安装指令如下:
1. cordova plugin add cordova-plugin-appavailability --save
2. cordova plugin add https://github.com/lampaa/com.lampa.startapp.git
第一个安装的是检测应用包名的插件,第二个安装的是启动第三方应用的插件
检测代码:
appAvailability.check("com.baidu.BaiduMap",function () {
//success callback
},function () {
//error callback
});
启动代码:
var sApp = startApp.set({ /* params */
"action":"ACTION_VIEW",
"category":"CATEGORY_DEFAULT",
"type":"text/css",
"package":"com.baidu.BaiduMap",
"uri":"baidumap://map/direction?origin=name:"+originName+"|latlng:"+origin[0]+","+origin[1]+"&destination=name:"+destinationName+"|latlng:"+destination[0]+","+destination[1]+"&mode=driving",
"flags":["FLAG_ACTIVITY_CLEAR_TOP","FLAG_ACTIVITY_CLEAR_TASK"],
"intentstart":"startActivity"
});
sApp.start(function() { /* success */
alert("OK");
}, function(error) { /* fail */
alert(error);
});
这里是以调用地图应用---百度地图为例
对于url中含有的参数说明:
originName:起始地名称
origin[0]:起始纬度
origin[1]:起始经度
destinationName:终点名称
destination[0]:终点纬度
destination[1]:终点经度
其他地图类应用的包名如下:
百度地图:com.baidu.BaiduMap
高德地图:com.autonavi.minimap
腾讯地图:com.tencent.map
谷歌地图:com.google.android.apps.maps
常用地图API
常用地图的API:
1.百度地图 http://lbsyun.baidu.com/index.php?title=uri/api/web
调起App的uri:baidumap://map/direction
2.腾讯地图 https://lbs.qq.com/uri_v1/guide-route.html
调起App的uri:qqmap://map/routeplan
3.高德地图 https://lbs.amap.com/api/uri-api/guide/travel/route
调起App的uri:amapuri://route/plan/
4.谷歌地图 地图开发地址不可用
调起App的uri:google.navigation:q= 或者 http://maps.google.com/maps
注意: cordova 运行版本需6.3.0以上。
发散应用:
可以分别利用两个插件,检测应用包名,或者调起第三方应用,或者一起使用检测某个第三方应用的存在,并传参调起。