添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
zhihu:// sms:// cmshowidol://ui_openPage?pageName=${pageName}&data=${encodeURI(JSON.stringify(pageData))}

scheme 的唤起方式会被浏览器和app拦截:

  • chrome 禁止非用户操作的 scheme 跳转,所以必须要加 button 让用户点击才能跳转
  • QQ浏览器、其他 App 内置 webview 的浏览器,都会对 scheme 进行拦截(需要加入app的白名单才行)
  • Intent

    chrome 25以后的版本支持

    intent:
       HOST/URI-path // Optional host
       #Intent;
          package=[string];                     必选
          action=[string];
          category=[string];
          component=[string];
          scheme=[string];                      必选
    

    例如:intent://ui_openPage?pageName=${pageName}&data=${encodeURI(JSON.stringify(pageData))}/#Intent;scheme=cmshowidol;package=com.tencent.kapu;end

    IOS 9+支持

  • <iframe src='${intentURL}' style=''>打开</iframe>
  • <iframe href='${intentURL}' style=''>打开</iframe>
  • window.location=intentURL
  • OS的差异性

    Android

  • 下载 app 必须要到跳转到 app store,使用的 scheme 协议为: itms-appss://apps.apple.com/app/id590338362
  • 唤起 app 可以直接用 window.location.href = schemeURL
  • 唤端结果的捕获

    唤端成功后浏览器进入后台运行,计时器被推迟(计时器不准),重新切换到浏览器后一般超过2s,此时认为唤端失败

    let openTime = new Date()
    setTimeout(() => {
        if(+new Date() - openTime > 2000) {
            alert('打开成功')
        else {
            alert('打开失败')
            alert('请使用safari浏览器打开~')
    }, 1000);
    window.location.href = schemeURL
    

    浏览器的差异性