移动端H5唤起APP的写法实例(IOS、android)

 更新时间:2021年07月15日 09:51:20   作者:孤山渐青  
最近在做扫码之后的h5页面唤醒App的功能,所以记录一下,这篇文章主要给大家介绍了关于移动端H5唤起APP的相关资料,需要的朋友可以参考下

IOS

1.url scheme

这个方案基本上就是针对微信、qq内置浏览器,qq浏览器等之外的其余浏览器,从native那边要一个scheme ,然后放在a标签里或者location.href跳一下就行了

用一个iframe去做的一个跳页,有的话唤起scheme没有的话,会触发定时器跳到下载地址。但是这个方式在ios里面,在没有app的时候会遇到两次提示,

 var openApp = function (src) {
        // 通过iframe的方式试图打开APP,如果能正常打开,会直接切换到APP,并自动阻止a标签的默认行为
        // 否则打开a标签的href链接
        const ifr = document.createElement('iframe');
        ifr.src = src;
        ifr.style.display = 'none';
        document.body.appendChild(ifr);
        var poenTime = +new Date()
        window.setTimeout(() => {
          document.body.removeChild(ifr);
          if ((+new Date()-openTime>2500)){
            window.location = 'APP Store下载的地址 '
          }
        }, 600);
      };

2.Universal Link(ios)

这是iOS9推出的一项功能,如果你的应用支持Universal Links(通用链接),那么就能够方便的通过传统的HTTP链接来启动APP(如果iOS设备上已经安装了你的app,不需要额外做任何判断等),或者打开网页(iOS设备上没有安装你的app)。或许可以更简单点来说明,在iOS9之前,对于从各种从浏览器,Safari、UIWebView或者 WKWebView中唤醒APP的需求,我们通常只能使用scheme。

window.location.href ="APP给的Universal Link"

总结

兼容写法

if (isGreaterThan9){
   window.location.href ="APP给的Universal Link" ;
   return;
}
openApp(src)

android

方法类似

 if (openApp('url scheme url')) {
            openApp('url scheme url');
          } else {
            setTimeout(() => {
              window.location.href = 'APP 市场下载地址';// 一般是google, 各个应用商店不一样
            }, 600);
          }
      }

总结

到此这篇关于移动端H5唤起APP的文章就介绍到这了,更多相关移动端H5唤起APP内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • window.open打开窗口被拦截的快速解决方法

    window.open打开窗口被拦截的快速解决方法

    下面小编就为大家带来一篇window.open打开窗口被拦截的快速解决方法。觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • javascript在IE下trim函数无法使用的解决方法

    javascript在IE下trim函数无法使用的解决方法

    这篇文章主要介绍了javascript在IE下trim函数无法使用的解决方法,分别叙述了javascript以及jQuery下的解决方案,对于WEB前端javascript设计人员进行浏览器兼容性调试有不错的借鉴价值,需要的朋友可以参考下
    2014-09-09
  • 利用JavaScript实现放鞭炮动画效果

    利用JavaScript实现放鞭炮动画效果

    谈及过年,最先让人想到的就是,噼里啪啦的鞭炮声。本文将利用JavaScript实现一个简单的放鞭炮动画效果,感兴趣的小伙伴可以了解一下
    2023-01-01
  • 基于layui轮播图满屏是高度自适应的解决方法

    基于layui轮播图满屏是高度自适应的解决方法

    今天小编就为大家分享一篇基于layui轮播图满屏是高度自适应的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • 一些手写JavaScript常用的函数汇总

    一些手写JavaScript常用的函数汇总

    这篇文章主要给大家介绍了一些手写的JavaScript常用的函数,文中通过示例代码介绍的非常详细,对大家学习或者使用JavaScript具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • js实现图片无缝滚动

    js实现图片无缝滚动

    这篇文章主要介绍了Javascript图片无缝滚动的相关内容,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • js有序数组的连接问题

    js有序数组的连接问题

    昨天碰到一道关于如何解决有序数组的连接问题,这是一个很常见的问题。但是这里要考虑到代码的效率问题,因为要连接的数组都是有序的,这是一个非常重要的前提条件
    2013-10-10
  • Bootstrap table的使用方法

    Bootstrap table的使用方法

    这篇文章主要为大家详细解析了JS组件Bootstrap Table使用方法,具有一定的实用性和参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • 不用AI也能实现的文字自动播报(SpeechSynthesis文本实例合成)

    不用AI也能实现的文字自动播报(SpeechSynthesis文本实例合成)

    SpeechSynthesis是HTML5的一个新特性,基于SpeechSynthesis可以实现在客户浏览器端进行动态文本的语音合成播放,这篇文章主要介绍了不用AI也能实现的文字自动播报(SpeechSynthesis文本实例合成),需要的朋友可以参考下
    2023-03-03
  • JavaScript创建对象的写法

    JavaScript创建对象的写法

    JavaScript 有Date、Array、String等这样的内置对象,功能强大使用简单,人见人爱,但在处理一些复杂的逻辑的时候,内置对象就很无力了,往往需要开发者自定义对象
    2013-08-08

最新评论