H5唤起App,JS完整dome,代码灵活自己想怎么改就怎么改。

mac2024-05-08  36

/** * 启动ios APP地址 */ var iosAppUrl = ""; /** * 启动安卓 APP地址 */ var androidAppUrl = ""; /** * AppStore下载地址 */ var iosAppStore = ""; /** * 安卓安装包下载地址 */ var androidApk = ""; /** * QQ应用宝 */ var appQQ = ""; /** * 移动终端浏览器版本信息 * @method detectVersion 版本检测 * @return {返回值类型} isAndroid, isIOS, isIOS9 true或false */ function infoMore() {     var browser = {         versions: function () {             var u = navigator.userAgent,                 app = navigator.appVersion;             return { //移动终端浏览器版本信息                 weixin: u.match(/MicroMessenger/i) == 'MicroMessenger',//是否为微信浏览器                 trident: u.indexOf('Trident') > -1, //IE内核                 presto: u.indexOf('Presto') > -1, //opera内核                 webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核                 gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核                 mobile: !!u.match(/AppleWebKit.*Mobile.*/) || !!u.match(/AppleWebKit/), //是否为移动终端                 ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端                 android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器                 iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, //是否为iPhone或者QQHD浏览器                 iPad: u.indexOf('iPad') > -1, //是否iPad                 webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部                 // qq: u.match(/\sQQ/i) !== null, //是否QQ                 //Safari: u.indexOf('Safari') > -1,//Safari浏览器,             };         }(),         language: (navigator.browserLanguage || navigator.language).toLowerCase()     }     if (browser.versions.weixin && browser.versions.android) { //微信安卓         alert("微信安卓");         openApp(androidAppUrl, androidApk)     }     else if (browser.versions.android && browser.versions.webKit) { //安卓         alert("安卓");         openApp(androidAppUrl, androidApk)     }     else if (browser.versions.weixin && (browser.versions.ios || browser.versions.iPhone || browser.versions.iPad)) { //微信IOS         alert("微信IOS");         openApp(iosAppUrl, iosAppStore)     }     else if (browser.versions.ios || browser.versions.iPhone || browser.versions.iPad) { //IOS         alert("IOS");         openApp(iosAppUrl, iosAppStore)     } } /** * 版本检测 * @method detectVersion 版本检测 * @return {返回值类型} isAndroid, isIOS, isIOS9 true或false */ function detectVersion() {     let isAndroid, isIOS, isIOS9, version,         u = navigator.userAgent,         ua = u.toLowerCase();     if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) {  //android终端或者uc浏览器         //Android系统         isAndroid = true     }     if (ua.indexOf("like mac os x") > 0) {         //ios         var regStr_saf = /os [\d._]*/gi;         var verinfo = ua.match(regStr_saf);         version = (verinfo + "").replace(/[^0-9|_.]/ig, "").replace(/_/ig, ".");     }     var version_str = version + "";     if (version_str != "undefined" && version_str.length > 0) {         version = parseInt(version)         if (version >= 8) {             // ios9以上             isIOS9 = true         }         else {             isIOS = true         }     }     return { isAndroid, isIOS, isIOS9 } } /** * 判断手机上是否安装了app,如果安装直接打开url,如果没安装,执行callback * @method openApp 打开App * @param {参数类型} url 启动app地址 * @param {参数类型} callback 回调地址app(下载地址) * @return {返回值类型} 返回值说明 */ function openApp(url, callback) {     let {isAndroid, isIOS, isIOS9} = detectVersion()     if (isAndroid || isIOS) {         var timeout, t = 4000, hasApp = true;         var openScript = setTimeout(function () {             if (!hasApp) {                 callback && (window.location.href = callback);             }             document.body.removeChild(ifr);         }, 5000)         var t1 = Date.now();         var ifr = document.createElement("iframe");         ifr.setAttribute('src', url);         ifr.setAttribute('style', 'display:none');         document.body.appendChild(ifr);         timeout = setTimeout(function () {             var t2 = Date.now();             if (t2 - t1 < t + 100) {                 hasApp = false;             }         }, t);     }     if (isIOS9) {         location.href = url;         setTimeout(function () {             callback && (window.location.href = callback);         }, 250);         setTimeout(function () {             location.reload();         }, 1000);     } } 作者:SVIP丶CHEN 链接:https://www.jianshu.com/p/02eb19310252 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

最新回复(0)