网页只能在微信内打开,浏览器自动关闭:

<script type="text/javascript">
// 对浏览器的UserAgent进行正则匹配,不含有微信独有标识的则为其他浏览器
var useragent = navigator.userAgent;
if (useragent.match(/MicroMessenger/i) != 'MicroMessenger') {
// 这里警告框会阻塞当前页面继续加载
alert('已禁止本次访问:您必须使用微信内置浏览器访问本页面!');
// 以下代码是用javascript强行关闭当前页面
var opened = window.open('about:blank', '_self');
opened.opener = null;
opened.close();
}
</script>

方法一注释:

//限制网页只能在微信打开
var ua = navigator.userAgent.toLowerCase();//获取浏览器的userAgent,并转化为小写

var isWeixin = ua.indexOf('micromessenger') != -1;//判断是否是微信浏览器,是则是true

var isWP = ua.indexOf('Windows Phone') != -1;//判断是否是winphone手机,是则是true

var isAndroid = ua.indexOf('android') != -1;//判断是否是安卓手机,是则是true

var isIos = (ua.indexOf('iphone') != -1) || (ua.indexOf('ipad') != -1);//判断是否是苹果手机,是则是true

if (!isWeixin && !isWP) {
//弹框可以终止加载
alert('您必须使用微信内置浏览器访问本页面!');

//以下代码是用javascript强行关闭当前页面

var opened = window.open('http://www.baidu.com', '_self');//弹框后打开某网页,可以用于禁止打开后跳转某宣传提示页面,也可以不弹窗直接跳转到其他页面

opened.opener = null;

opened.close();

}

方法二注释:

// 对浏览器的UserAgent进行正则匹配,不含有微信独有标识的则为其他浏览器
    var useragent = navigator.userAgent;
    if (useragent.match(/MicroMessenger/i) != 'MicroMessenger') {
        // 这里警告框会阻塞当前页面继续加载
        alert('已禁止本次访问:您必须使用微信内置浏览器访问本页面!');
        // 以下代码是用javascript强行关闭当前页面
        var opened = window.open('about:blank', '_self');
        opened.opener = null;
        opened.close();
    }

这段代码在Android、iPhone、iPad、PC上都进行了测试,只要不是在微信内部打开网页的,首先就会弹出上面那个警告框,此时后面的页面是空白的,什么都还没加载,当点击警告框的确定按钮之后,最后三行代码将强行关闭当前页面。OK,到这里算是实现了用户原本的意思了,可以简单收工了。但是对于伪造的UserAgent,还是可以绕过这条限制的。

 

评论 (0)

请登录

嘿,我来帮您