uni-app h5唤起App(配置及流程-超详细)

@uni-app h5唤起App(配置及流程-超详细) 此写法不支持内嵌h5

<template>
  <view class="content">
    <button type="primary" @tap="tapOpen">打开APP</button>
  </view>
</template>

<script>
  export default {
    methods: {
      tapOpen() {
        let u = navigator.userAgent;
        var isWeixin = u.toLowerCase().indexOf('micromessenger') !== -1; // 微信内
        if (isWeixin) {
          alert('请在浏览器中打开')
          return false;
        }
        const platform = uni.getSystemInfoSync().platform;
        if (platform === 'ios') {
          this.ios()
        }
        if (platform === 'android') {
          this.android()
        }
      },

      ios() {
        uni.showLoading({
          title: '加载中...'
        });
        const currentTime = +(new Date());
        window.location.href = "nftmall"; //找ios工程师要 UrlSchemes
        //启动间隔20ms运行的定时器,并检测累计消耗时间是否超过3000ms,超过则结束
        let _count = 0,
          timer;
        timer = setInterval(function() {
          _count++;
          const endTime = +(new Date()) - currentTime;
          if (_count >= 100 || endTime > 3000) {
            uni.hideLoading()
            clearInterval(timer);
            let hidden = window.document.hidden || window.document.mozHidden || window.document
              .msHidden || window.document.webkitHidden;
            if (typeof hidden == "undefined" || hidden == false) {
              //App store下载地址
              window.location.href = "https://www.baidu.com"; //下载地址 可以直接跳转到appstore的
            }
          }
        }, 20);
      },
      android() {
        uni.showLoading({
          title: '加载中...'
        });
        const currentTime = new Date().getTime();
        window.location.href = "nftmall://"; //找android工程师要 UrlSchemes
        // 启动间隔20ms运行的定时器,并检测累计消耗时间是否超过2000ms,超时则结束
        let _count = 0,
          timer;
        timer = setInterval(() => {
          _count++;
          const endTime = new Date().getTime() - currentTime;
          if (_count >= 200 || endTime > 5000) {
            uni.hideLoading()
            clearInterval(timer);
            let hidden = window.document.hidden || window.document.mozHidden || window.document
              .msHidden || window.document.webkitHidden;
            if (typeof hidden == "undefined" || hidden == false) {
              //App store下载地址
              window.location.href = "https://www.baidu.com"; //下载地址
            }
          }
        }, 20)
      }
    }
  }
</script>


我们打开manifest.json-源码视图-app-plus-android下配置"schemes" : “app” // app可随意
,为了方便可取域名中段,urlidentifier 可反写域名,urlschemewhitelist:访问白名单,与schemes相同

"urltypes" : [
                    {
                        "urlidentifier" : "cn.net.nftmall",
                        "urlschemes" : [ "nftmall" ]
                    }
                ],
        "urlschemewhitelist": [ "nftmall" ]

配置流程图
在这里插入图片描述

原文档

https://blog.51cto.com/u_15803377/5704694

ios的uniapp文档

https://uniapp.dcloud.net.cn/tutorial/app-ios-schemes.html#%E8%AE%BE%E7%BD%AEurlschemes

android 的uniapp文档

https://uniapp.dcloud.net.cn/tutorial/app-android-schemes.html#%E8%AE%BE%E7%BD%AEurlschemes




  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值