微信会屏蔽 URL 自定义的 scheme ,导致无法跳转手机中的浏览器。网上有一些工具类网站可以实现直接跳转浏览器,之后有机会我会整理一下。我们今天只讨论通过 JavaScript 判断是否在微信浏览器中打开,如果是则弹出提示,在浏览器中打开。
我首先在 body 中写了一个提示信息:(默认隐藏)
<div id="container" style="display: none">
<div style='position:relative;padding-top:100px;color:#333;font-size: 22px;text-align: center;'>
<i style='position: absolute;top: 10px;right: 10px;font-size: 100px' class='iconfont icon-jiantou'></i>
<p style="font-weight: 600;">请点击屏幕右上角 [ ··· ] </p>
<p>在 <i style='font-size: 60px;color: #1487F0' class='iconfont icon-browser'></i> 浏览器打开</p></div>
</div>
图标我使用的阿里图标库,节省资源,提高打开速度。
通过 JavaScript 判断浏览器内核,如果是微信,显示信息,提示“在浏览器打开”,如果不是则自动跳转下载链接:
<script>
/*
* 智能手机浏览器版本信息:
*/
var browser = {
versions: function () {
var u = navigator.userAgent, app = navigator.appVersion;
return {//移动终端浏览器版本信息
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应该程序,没有头部与底部
wx: u.indexOf("MicroMessenger") > 0 //是否是微信
};
}(),
language: (navigator.browserLanguage || navigator.language).toLowerCase()
}, con = document.getElementById("container");
if (browser.versions.wx) {
con.style.cssText = "display:block";
// window.location.href= 'http://c.pc.qq/middle.html?pfurl=https://www.rencaiyoujia/appdown/index.html';
} else if (browser.versions.android) {
// 此处写Andoird 的下载地址
window.location = "https://www.w3h5/w3h5.apk";
} else if (browser.versions.ios || browser.versions.iPhone || browser.versions.iPad) {
alert("iOS暂不支持下载哦~");
//TODO 此处写ios的下载地址
window.location = "https://www.w3h5/w3h5.ipa";
} else {
window.location = "https://www.w3h5/w3h5.apk";
}
</script>
这样如果是微信打开会自动提示在浏览器中打开,如下图所示:
微信会屏蔽 URL 自定义的 scheme ,导致无法跳转手机中的浏览器。网上有一些工具类网站可以实现直接跳转浏览器,之后有机会我会整理一下。我们今天只讨论通过 JavaScript 判断是否在微信浏览器中打开,如果是则弹出提示,在浏览器中打开。
我首先在 body 中写了一个提示信息:(默认隐藏)
<div id="container" style="display: none">
<div style='position:relative;padding-top:100px;color:#333;font-size: 22px;text-align: center;'>
<i style='position: absolute;top: 10px;right: 10px;font-size: 100px' class='iconfont icon-jiantou'></i>
<p style="font-weight: 600;">请点击屏幕右上角 [ ··· ] </p>
<p>在 <i style='font-size: 60px;color: #1487F0' class='iconfont icon-browser'></i> 浏览器打开</p></div>
</div>
图标我使用的阿里图标库,节省资源,提高打开速度。
通过 JavaScript 判断浏览器内核,如果是微信,显示信息,提示“在浏览器打开”,如果不是则自动跳转下载链接:
<script>
/*
* 智能手机浏览器版本信息:
*/
var browser = {
versions: function () {
var u = navigator.userAgent, app = navigator.appVersion;
return {//移动终端浏览器版本信息
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应该程序,没有头部与底部
wx: u.indexOf("MicroMessenger") > 0 //是否是微信
};
}(),
language: (navigator.browserLanguage || navigator.language).toLowerCase()
}, con = document.getElementById("container");
if (browser.versions.wx) {
con.style.cssText = "display:block";
// window.location.href= 'http://c.pc.qq/middle.html?pfurl=https://www.rencaiyoujia/appdown/index.html';
} else if (browser.versions.android) {
// 此处写Andoird 的下载地址
window.location = "https://www.w3h5/w3h5.apk";
} else if (browser.versions.ios || browser.versions.iPhone || browser.versions.iPad) {
alert("iOS暂不支持下载哦~");
//TODO 此处写ios的下载地址
window.location = "https://www.w3h5/w3h5.ipa";
} else {
window.location = "https://www.w3h5/w3h5.apk";
}
</script>
这样如果是微信打开会自动提示在浏览器中打开,如下图所示: