zoukankan      html  css  js  c++  java
  • ionic3 应用内打开第三方地图导航 百度 高德

    1.安装检测第三方APP是否存在的插件

       cordova plugin add cordova-plugin-appavailability --save

       npm install --save @ionic-native/app-availability                   这个可以根据项目的版本兼容性选择安装固定的版本号 我安装的是@3.4.2

     

       在页面引入 AppAvailability 并进行判断  因为ios和android的包名不一样 所以进行了判断

    import { AppAvailability } from '@ionic-native/app-availability';//检查是否安装了应用程序
    import { Platform } from 'ionic-angular';
    
    constructor( public appAvailability: AppAvailability,private platform: Platform,) {}
    
    ionViewDidLoad() {
        //检测百度地图是否存在
        if (this.platform.is('ios')) {
          this.baiduapp = 'baidumap://';
        } else if (this.platform.is('android')) {
          this.baiduapp = 'com.baidu.BaiduMap';
        }
        this.appAvailability.check(this.baiduapp)
        .then(
          (yes: boolean) => {//有安装app
            alert(this.baiduapp + ' is available')
          },
          (no: boolean) => {//没有安装app
            alert(this.baiduapp + ' is NOT available')
          }
        );
        //检测高德地图是否存在
        if (this.platform.is('ios')) {
          this.gaodeapp = 'autonavimap://';
        } else if (this.platform.is('android')) {
          this.gaodeapp = 'com.autonavi.minimap';
        }
        this.appAvailability.check(this.gaodeapp)
        .then(
          (yes: boolean) => {//有安装app
            alert(this.gaodeapp + ' is available')
          },
          (no: boolean) => {//没有安装app
            alert(this.gaodeapp + ' is NOT available')
          }
        );
    
      }

    2.安装打开第三方APP的插件

       cordova plugin add https://github.com/lampaa/com.lampa.startapp.git

       安装成功后就可以开始使用了

    declare var startApp; //在页面开头进行声明
    
    //跳转百度地图
      gobaidumap(){
        //百度地图参数配置
        let baiduApp = startApp.set(
          {
            "action":"ACTION_VIEW",  
          "category":"CATEGORY_DEFAULT",  
          "type":"text/css",  
          "package":this.baiduapp,  
          "uri":"baidumap://map/geocoder?location="+this.location.coordinates[1]+","+this.location.coordinates[0]+"&src=andr.baidu.openAPIdemo",   
          "flags":["FLAG_ACTIVITY_CLEAR_TOP","FLAG_ACTIVITY_CLEAR_TASK"],   
          "intentstart":"startActivity",  
          }, { /* extras */  
            "EXTRA_STREAM":"extraValue1",  
            "extraKey2":"extraValue2" 
          }
        );
        baiduApp.start(function(){
          // alert('baidu ok')
        },function(error){
          alert(error)
        })
      };
    
      //跳转高德地图
      gogaodemap(){
        //高德地图参数配置
        let gaodeApp = startApp.set(
          {
            "action":"ACTION_VIEW",  
          "category":"CATEGORY_DEFAULT",  
          "type":"text/css",  
          "package":this.gaodeapp,  
          "uri":"androidamap://viewMap?sourceApplication=appname&poiname="+this.item.work_address+"&lat="+this.location.coordinates[1]+"&lon="+this.location.coordinates[0]+"&dev=0",   
          "flags":["FLAG_ACTIVITY_CLEAR_TOP","FLAG_ACTIVITY_CLEAR_TASK"],   
          "intentstart":"startActivity",  
          }, { /* extras */  
            "EXTRA_STREAM":"extraValue1",  
            "extraKey2":"extraValue2" 
          }
        );
        gaodeApp.start(function(){
          // alert('gaode ok')
        },function(error){
          alert(error)
        })
      }

    上面的 uri 参数可以有多种选择 导航、地图标注、路线规划 等等 

    注意:这两个地图传经纬度的时候 第一个是纬度 第二个是经度 (因为这个传反了 调了一天 晕~)

    具体可以参考一下链接

    百度:http://lbsyun.baidu.com/index.php?title=uri/api/android

    高德:https://lbs.amap.com/api/amap-mobile/guide/android/navigation

     

     

  • 相关阅读:
    虚函数与动态多态
    我读苏东坡
    Linux高性能服务器编程学习-第三章思维导图笔记
    Linux高性能服务器编程学习-第二章思维导图笔记
    Linux高性能服务器编程学习-第一章思维导图笔记
    【Knockout】五、创建自定义绑定
    【Knockout】三、data-bind声明式绑定
    【Knockout】四、绑定上下文
    【Knockout】一、认识Knockout,你会爱上它
    【Knockout】二、监控属性Observables
  • 原文地址:https://www.cnblogs.com/luffyc/p/9718810.html
Copyright © 2011-2022 走看看