mui/h5+/调用安卓地图应用

    mui.init()
    mui.plusReady(function() {
        //传入包名,检查手机上是否安装了这个应用
        function isInstall(packageName) { //
            try {
                var main = plus.android.runtimeMainActivity();
                var packageManager = main.getPackageManager();
                var PackageManager = plus.android.importClass(packageManager);
                var packageinfo = packageManager.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES)
                if (packageinfo) {
                    return true;
                } else {
                    return false;
                }
            } catch (e) {
                return false;
            }
        }
        //批量传入包名,检查一系列应用是否安装,如果有任意一个安装了,就执行success,否认执行fail
        function operationAfterCheckInstall(mapsPackageNames, success, fail) {
            var res = mapsPackageNames.map(function(item) {
                return isInstall(item);
            })

            if (eval(res.join("||"))) {
                success();
            } else {
                fail();
            }
        }
        //可以在这里写业务逻辑了
        document.getElementById("nav").onclick = function() {
            //如果还知道其他地图的包名,也可以放这个数组里
            var mapsPackageNames = ['com.baidu.BaiduMap', 'com.autonavi.minimap', 'com.tencent.map'];
            operationAfterCheckInstall(mapsPackageNames, function() {
                var dst = new plus.maps.Point(46.1757500000,129.4252800000); // 目的地 
                var src = new plus.maps.Point(116.335, 39.966); // 起始地 可以不填
                plus.maps.openSysMap(dst, "达连河", src);
            }, function() {
                alert("您未安装百度地图、高德地图、腾讯地图,请前往应用市场下载");
            })
        }
    })
  备注:在mui打包过程中,调用第三方地图,需要放入一个地图开发者账号(百度、腾讯、高德哪一方都行)申请成功的key值,这样打包时候才允许导入第三方的包。以上例子中就是 ['com.baidu.BaiduMap', 'com.autonavi.minimap', 'com.tencent.map'] 这个东西。
posted @ 2019-11-15 15:33  QiuYuLing  阅读(792)  评论(0编辑  收藏  举报