ionic3 跳转第三方地图并根据关键字搜索

一、首先引入用到的3个插件

1.检查app是否存在:

$ ionic cordova plugin add cordova-plugin-appavailability
$ npm install --save @ionic-native/app-availability
复制代码

import { AppAvailability } from '@ionic-native/app-availability';复制代码

2.判断iOS还是安卓:

import { Platform } from 'ionic-angular';复制代码

3.跳转第三方app:

$ ionic cordova plugin add https://github.com/lampaa/com.lampa.startapp.git复制代码

declare let startApp: any;复制代码

二、实现过程

1.先判断是iOS平台还是安卓平台:

this.platform.is('ios');复制代码

this.platform.is('android');复制代码

2.如果是iOS平台,检查是否安装了第三方app,如果安装就通过urlsheme打开:

this.appAvailability.check(checkUrl)
      .then(
        (yes: boolean) => {
          var sApp = startApp.set(urlSheme);
          sApp.start(function () {
            console.log("sApp.start succeed");
          }, function (error) {
            alert("error---" + error);
          });
        },
        (no: boolean) => {
          alert("没有在本机检测到百度地图");
        });复制代码

checkUrl:百度--baidumap://

               高德--iosamap://

urlSheme:百度--baidumap://map/geocoder?address=xxx

                高德--iosamap://poi?sourceApplication=applicationName&name=xxx

注意:xxx如果为中文需要进行转码encodeURI(xxx),否则跳转app方法会进error。

如果是安卓平台:

  this.appAvailability.check(pkg)
      .then(
        (yes: boolean) => {
          var sApp = startApp.set({
            "action": "ACTION_VIEW",
            "category": "CATEGORY_DEFAULT",
            "type": "text/css",
            "package": pkg,
            "uri": urlSheme,
            "flags": ["FLAG_ACTIVITY_CLEAR_TOP", "FLAG_ACTIVITY_CLEAR_TASK"],
            "intentstart": "startActivity",
          }, {
              "EXTRA_STREAM": "extraValue1",
              "extraKey2": "extraValue2"
            });
          sApp.start(function () {
            console.log("sApp.start succeed");
          }, function (error) {
            alert("error---" + error);
          });
        },
        (no: boolean) => {
          alert("没有在本机检测到百度地图");
        });复制代码

pkg:百度--com.baidu.BaiduMap

        高德--com.autonavi.minimap

urlSheme:百度--baidumap://map/geocoder?address=xxx

                高德--androidamap://poi?sourceApplication=applicationName&keywords=xxx

xxx如果为中文依旧需要encodeURI(xxx)转码。


转载于:https://juejin.im/post/5b30a8da6fb9a00e4966f104

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值