ionic4 中使用 url scheme 插件 点击链接打开app

ionic4 中使用 url scheme 插件 点击链接打开app

接到个新的需求,需要通过url打开应用,Google了下找到了 ionic 可以使用的 url scheme 插件

一、在使用前先简单了解下什么是urlcheme:

简单的说,URL Scheme就是一个可以让app相互之间可以跳转的协议。列如:微信的 URL Scheme 就是 weixin://,在浏览器中打开 weixin://scanqrcode 可以跳转到微信的扫一扫功能。 常见的一些url scheme,比如; sinaweibo:// , youku://, mqq:// ,weixin:// ,taobao:// , baidumap://等等,我们可以通过这些url 来直接打开应用以及调用一些相应的开放的功能。

二、插件使用:
sudo ionic cordova plugin add cordova-plugin-customurlscheme --variable URL_SCHEME=mytargetapp

插件安装完成后,就可以通过url scheme 来打开该app了。

三、打开当前应用
<button onclick="window.open('mytargetapp://somepath?foo=bar', '_system')">打开应用</button>
<a href="mytargetapp://somepath?foo=bar">打开应用</a>

如果需要APP打开当前应用,需要在config.xml里增加 <allow-intent href="mytargetapp:*" /> href中的值,根据要打开的目标app来定义,比如要打开微信,那么值就是 weixin:*

四、还有一个问题,就是targetProject 要如何才能知道是通过其他app 的 url scheme打开它的?或者说如果获取往app传的参数?
constructor() {
    // 用于接收url scheme传入的参数
    (window as any).handleOpenURL = (url: string) => {
      setTimeout(() => {
        this.handleOpenUrl(url);
      }, 0);
    };
  }

  /**
   * 处理url scheme 的参数
   * @author LiQun
   * @date 2019-07-25
   * @param url urlscheme 链接参数,如 mytargetapp://somepath?foo=bar
   */
  private handleOpenUrl(url: string) {
  var theRequest = new Object();   
       if (url.indexOf("?") != -1) {   
          var str = url.substr(1);   
          strs = str.split("&");   
          for(var i = 0; i < strs.length; i ++) {   
             theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);   
          }   
       }   
       return theRequest;   
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值