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

 

ionic3 应用内打开第三方地图导航 百度 高德的更多相关文章

  1. uni-app路径规划(打开第三方地图实现)

    百度网盘链接:https://pan.baidu.com/s/1-Ys13GFcnKXB1wkJotcwMw 提取码:16gp 把js文件放在common目录下 引入:    import pathP ...

  2. iOS第三方地图-百度地图常用功能使用(POI搜索,地理正反编码,定位,添加标注)

    百度地图官网: http://developer.baidu.com/map/index.php?title=iossdk 百度地图集成 1.引入相关包

  3. Android 仿微信调用第三方应用导航(百度,高德、腾讯)

    实现目标 先来一张微信功能截图看看要做什么  其实就是有一个目的地,点击目的地的时候弹出可选择的应用进行导航. 大脑动一下,要实现这个功能应该大体分成两步: 底部弹出可选的地图菜单进行展示 点击具体菜 ...

  4. iOS第三方地图-百度地图定位的封装

    // // BaiduMapTools.h // baidumapTest // // Created by apple on 15/8/26. // Copyright (c) 2015年 tqh. ...

  5. IOS第三方地图-百度地图集成

    百度地图官网: http://developer.baidu.com/map/index.php?title=iossdk 照上面吧百度地图sdk集成到工程 然后在pilst文件中加入: 如果地图没有 ...

  6. iOS开发 - 应用内打开第三方应用并传值

    首先说下这个功能, 应该都有接触过. 比方,你下载了一个电子书,然后选择打开方式的时候,可能会看到你手机中已经安装的阅读类App. 或者,你的QQ收到了某个文件,你也能够选择本地的应用来打开. 那这种 ...

  7. iOS第三方地图-百度地图中心点定位

    使用百度地图定位后,滑动地图,使用反编码确定地图中心店的位置信息 // // MapControl.m // quyizu // // Created by apple on 15/9/2. // C ...

  8. iOS调用第三方地图App进行导航方法

    前言 App内根据手机上装载的地图App将其显示在弹出的选择框,选择对应地图跳转进入地图导航.需要用到- (BOOL)canOpenURL:(NSURL *)url NS_AVAILABLE_IOS( ...

  9. iOS打开百度地图、高德地图导航

    1.判断手机里是否已经安装了百度地图或者高德地图: BOOL hasBaiduMap = NO; BOOL hasGaodeMap = NO; if ([[UIApplication sharedAp ...

随机推荐

  1. python实现将base64编码的图片下载到本地

    # -*- coding:utf-8 -*- #!python3 import os import base64 sss ="""base64的编码"" ...

  2. Foxmail设置IMAP和STMP服务器

  3. Kotlin 对象表达式和对象声明

    Kotlin 用对象表达式和对象声明来实现创建一个对某个类做了轻微改动的类的对象,且不需要去声明一个新的子类. 对象表达式 通过对象表达式实现一个匿名内部类的对象用于方法的参数中: window.ad ...

  4. Ubuntu16.04安装Anaconda2

    1.下载Anaconda2: 官网上下载相应的版本,我下载的是Anaconda2-2018.12-Linux-x86_64.sh 2.安装Anaconda2: 在文件的目录输入命令:bash Anac ...

  5. 详解MySQL中concat函数的用法(连接字符串)

    MySQL中concat函数 使用方法: CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意: 如果所有参数均为非二进制 ...

  6. Go语言学习之12 etcd、contex、kafka消费实例、logagent

    本节内容:    1. etcd介绍与使用    2. ElastcSearch介绍与使用 1. etcd介绍与使用    概念:高可用的分布式key-value存储,可以使用配置共享和服务发现    ...

  7. QT 右键弹出菜单

    QWidget及其子类都可有右键菜单 1.设置标志 在widget初始化的时候 setContextMenuPolicy(Qt::CustomContextMenu); 设置为自定义菜单模式 2.在需 ...

  8. Windos消息驱动

    当Window是向程序发送消息时,它调用程序中的一个函数,这个函数用来描述Windows发送的消息,成为窗口函数或消息处理函数.他是一个自定义的回调函数: LRESULT CALLBACK Windo ...

  9. ASP.NET 发送邮件 SMTP

    目录 // 邮件信息 对象                MailMessage mail = new MailMessage(); //新建邮件SMTP客户端   对象          用于发送 ...

  10. 如何将baseUrl项目地址提取放到放到static

    原本项目的baseUrl地址是放在src/common/config.js ,但是这有一个缺点,就是本地测试一个地址,生产一个地址.每发一次不同環境的包就要build一下,太麻烦了!有没有解决的办法呢 ...