• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

通过扫描二维码打开app的实现代码

php 搞代码 4年前 (2022-01-04) 31次浏览 已收录 0个评论

最近有朋友问小编这样一个问题,先给大家说下项目需求:扫描二维码打开app如果用户没有这个app则提示它跳转。

用网页直接来调用app是不打可能的,必须原生那边先做一些配置。

首先,安卓和苹果的调用方法是不同的。

所以我们需要先判断一下终端。

var u = navigator.userAgent,app = navigator.appVersion;var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //android终端或者uc浏览器var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端

之后最好是分别跳转到两个不同的页面去做操作,因为苹果需要在头部配置一个app-id<meta name='apple-itunes-app' content='app-id=1115968341'>

下面是苹果的代码

<!DOCTYPE html><html><head><meta charset="UTF-8"><meta name='apple-itunes-app' content='app-id=1115968341'><title></title<a style="color:transparent">来源gao*daima.com搞@代#码网</a>></head><body><a href="https://itunes.apple.com/cn/app/yi-fang-kuai-le-xue-tang/id1115968341?mt=8" id="openApp">点击打开</a><script type="text/javascript">//苹果document.getElementById('openApp').onclick = function(e){// 通过iframe的方式试图打开APP,如果能正常打开,会直接切换到APP,并自动阻止a标签的默认行为// 否则打开a标签的href链接var ifr = document.createElement('iframe');ifr.src = 'iosefunbox://';ifr.style.display = 'none';document.body.appendChild(ifr);window.setTimeout(function(){document.body.removeChild(ifr);},3000)};</script></body></html>

这里的ifr.src就是你去打开app的协议路径,安卓和苹果是不一样的。<br><br><br>如果是安卓机的话就简单了

<!DOCTYPE html><html><head><meta charset="UTF-8"><title></title><meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no"></head><body><a href="http://a.app.qq.com/o/simple.jsp?pkgname=com.edufound.mobile" id="openApp">点击打开</a><script type="text/javascript">//安卓// /**/window.location.href = "http://a.app.qq.com/o/simple.jsp?pkgname=com.edufound.mobile";// 通过iframe的方式试图打开APP,如果能正常打开,会直接切换到APP,并自动阻止a标签的默认行为// 否则打开a标签的href链接var ifr = document.createElement('iframe');ifr.src = 'efunbox://efunbox.app/efunbox/open';ifr.style.display = 'none';document.body.appendChild(ifr);window.setTimeout(function(){document.body.removeChild(ifr);},3000);</script></body></html>

这是我们原先的需求,后来变了,说苹果直接跳转到appstore里面就好了,不用直接打开,安卓的话需要直接打开。

这样我就直接把它们集合在一个网页就行。

我上面的a链接是直接跳转到腾讯应用宝里面。

用网页扫描访问的话是没问题的,

但是我就感觉会出事,后来拿微信扫一扫就蒙逼了。安卓只会打开a链接,跳转不进app,因为被微信拦截掉了,苹果也一样,解决的方案只能是点击右上角,提示用户在浏览器打开就没问题。这种方法是无奈之举,但后来针对苹果机找到了一个解决它的方案就是,a链接的跳转直接跳腾讯应用宝上架的链接,然后微信内部会处理帮你自动跳转到appstore里面。

最后是整合了一下的代码。

<!DOCTYPE html><html><head><meta charset="UTF-8"><title></title></head><body id="body"><script type="text/javascript">var u = navigator.userAgent,app = navigator.appVersion;var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //android终端或者uc浏览器var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端if(isIOS){window.location.href = "http://a.app.qq.com/o/simple.jsp?pkgname=com.edufound.mobile";}if(isAndroid){alert("请点击右上角在浏览器打开");window.location.href = "http://a.app.qq.com/o/simple.jsp?pkgname=com.edufound.mobile";var ifr = document.createElement('iframe');ifr.src = 'efunbox://efunbox.app/efunbox/open';ifr.style.display = 'none';document.body.appendChild(ifr);window.setTimeout(function(){document.body.removeChild(ifr);},3000);}</script></body></html>

补充:

扫描二维码跳转app

1、判断是否安装了app

<html><head><meta name="viewport" content="width=device-width" /></head><body><h2><a id="applink1" href="mtcmtc://profile/116201417">Open scheme(mtcmtc) defined in iPhone with parameters </a></h2><h2><a id="applink2" href="unknown://nowhere">open unknown with fallback to appstore</a></h2><p><i>Only works on iPhone!</i></p><script type="text/javascript">// To avoid the "protocol not supported" alert, fail must open another app.var appstore = "itms://itunes.apple.com/us/app/facebook/id284882215?mt=8&uo=6";function applink(fail){return function(){var clickedAt = +new Date;// During tests on 3g/3gs this timeout fires immediately if less than 500ms.setTimeout(function(){// To avoid failing on return to MobileSafari, ensure freshness!if (+new Date - clickedAt < 2000){window.location = fail;}}, 500);};}document.getElementById("applink1").onclick = applink(appstore);document.getElementById("applink2").onclick = applink(appstore);</script></body></html>

2、打开项目工程target里面的schemurl追加://


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:通过扫描二维码打开app的实现代码

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址