不管是在哪一个平台的客户端Android/IOS,在微信的平台上访问都有一个问题,那就是没法启动客户端,这是微信为了安全性考虑的限制,android这边屏蔽schema协议,除非公司是微信的伙伴加入了白名单才能使用,IOS系统能够去访问app对应appstore的下载页,可是微信常常屏蔽appstore的这个网址,进而访问不到。比较方便的作法就是在微信浏览器中,不管是IOS仍是android都去应用宝的下载(IOS 这边最后会到appstore中)页面打开。html
var agent = navigator.userAgent || '' var isWx = /micromessenger/i.test(agent) if(isWx){ //微信,提示用户用浏览器打开 }else{ //非微信 }
js的test() 方法用于检测一个字符串是否匹配某个模式.android
RegExpObject.test(string) //string为要检测的字符串。 //若是字符串 string 中含有与 RegExpObject 匹配的文本,则返回 true,不然返回 false。
var isIOS = /iPhone|iPad|iPod/i.test(agent) //返回true/false
H5启动APP本质上是经过URL scheme打开APP,一个APP能够设置一个或多个打开本身的URL scheme,浏览器去访问某一个APP的URL scheme,而后若系统安装有这个APP,则会请求权限去打开这个APP。ios
其实也算是浏览器app打开另外一个app,iOS就可使用 UIApplication 的 canOpenUrl 方法来检测URL scheme 是否能打开对应的APP,而android也是相似的方式。浏览器
固然若是JS跳转URL scheme没有反应,也意味着这个手机没有装这个app。安全
<a class='btn'>打开app</a>
若是须要跳转到app指定页面,在URL scheme后面再加一个url便可(URL scheme及url由app开发人员提供。)微信
if (isIOS) { $('.btn').attr('href','BonDayApp://' + url); } else { $('.btn').attr('href','bondayapp://bonday.com/scheme?' + url); }