乐趣区

H5唤醒App之scheme方案

前言

写移动端页面精彩遇到唤醒 App 的需求, 一般都是通过 scheme 协议唤起的, 这里记录一下

代码片段

以新浪微博为例: 其协议为 sinaweibo://splash; 这些协议需要自己去收集, 或者去官方查询; 有些 App 分 IOS 和 Android; 有些应用又不分;
这个根据终端做处理即可

<a href="sinaweibo://splash"> 微博 app</a>
<a href="sinaweibo://userinfo?uid=3177804914"> 微博个人主页 </a>

// 跳转代码: 手机装了 app 就打开; 没有就跳转页面或者跳转 app store 去下载, 逻辑自己定义即可
goToWeibo() {
      let u = navigator.userAgent;
      let isAndroid = u.indexOf("Android") > -1; // 安卓终端
      let isIOS = !!u.match(/\(i[^;]+;(U;)? CPU.+Mac OS X/); //ios 终端
      if (isAndroid) {
        // 安卓 weibo 的 scheme 协议跳转
        window.location.href = "sinaweibo://userinfo?uid=3177804914";
        setTimeout(function() {
          let hidden =
            window.document.hidden ||
            window.document.mozHidden ||
            window.document.msHidden ||
            window.document.webkitHidden;
          if (typeof hidden == "undefined" || hidden == false) {window.location.href = "https://m.weibo.cn/u/3177804914";}
        }, 2000);
      }
      // IOS 下的 scheme 协议跳转
      if (isIOS) {
        window.location.href = "sinaweibo://userinfo?uid=3177804914";
        setTimeout(function() {
          let hidden =
            window.document.hidden ||
            window.document.mozHidden ||
            window.document.msHidden ||
            window.document.webkitHidden;
          if (typeof hidden == "undefined" || hidden == false) {
            window.location.href =
              "https://m.weibo.cn/u/3177804914";
          }
        }, 2000);
      }
    },

附上几个常用应用的协议

推特: twitter://user?screen_name=
ins: instagram://user?username=
youtube: iOS: youtube://www.youtube.com/user/ Android : vnd.youtube://www.youtube.com/user/

其他 app scheme 协议快速通道:
国内: https://blog.csdn.net/swt_zql…
海外: https://help.emplify.com/hc/e…

退出移动版