微信限制内置浏览器的访问方法

1.通过JS判断微信的独有标识UserAgent,但是对于伪造的UserAgent,还是可以绕过该限制。

<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>

2.修改接口(在网页中通过JavaScript代码隐藏网页右上角按钮。)

接口调用代码(JavaScript)

function onBridgeReady(){
 WeixinJSBridge.call(‘hideOptionMenu‘);
}

if (typeof WeixinJSBridge == "undefined"){
    if( document.addEventListener ){
        document.addEventListener(‘WeixinJSBridgeReady‘, onBridgeReady, false);
    }else if (document.attachEvent){
        document.attachEvent(‘WeixinJSBridgeReady‘, onBridgeReady);
        document.attachEvent(‘onWeixinJSBridgeReady‘, onBridgeReady);
    }
}else{
    onBridgeReady();
}

返回说明

隐藏底部导航栏没有返回值。(需要显示请把hideOptionMenu换成showOptionMenu)

时间: 12-05

微信限制内置浏览器的访问方法的相关文章

Javascript限制网页只能在微信内置浏览器中访问

转载:http://segmentfault.com/a/1190000000754332 最近正在开发一个微信公众账号,其中有一项功能是用户发送文字消息给公众号,然后公众号返回图文消息给用户,用户再点击图文消息即可跳转到一个网页链接,在微信的内置浏览器中打开.那么问题就来了,这个网页首先涉及到了移动web前端开发,我优先选择了用HTML5+bootstrap组合来实现页面的美观效果,前端其他的任务交给javascript解决(这里我是完全使用原生javascript代码,没有用到任何的框架,因

微信端内置浏览器分享JS

<script type="text/javascript"> var imgUrl = 'http://m.56kc.cn/Areas/CMS/Themes/dongfangkuaiche/Content/images/dfkc/dfkc.jpg';//这里是分享的时候的那个图片 var lineLink = 'http://m.56kc.cn/VenueForLease/VenueForLeaseList';//这个是分享的网址 var shareTitle = '分享

解决微信屏蔽内置浏览器的下载功能以及如何跳转到手机默认浏览器下载的实现

今天一后台同事问我:为什么从App里面分享到微信好友时,在微信里没有发下载分享里的软件,而在浏览器中却可以? 于是我在微信公众号中试了一下,发现果然不可以下载.通过google 发现,原来是微信屏蔽了内置浏览器的下载功能.那么有没有解决办法呢? 肯定是有的. 判断发现是在微信中打开,给提示让其从右上角选择在浏览器中打开,这样的效果对于用户体验来说肯定是差的.所以我们经过长时间的尝试找到一个更好的解决方式: 桔子跳转是一款基于微信后端开发了一款微信营销下载推广助手,使用了本插件生成的链接,用户在微

微信内置浏览器清理缓存方法

目前感觉大部分所接触过的项目,目标用户几乎都是使用微信浏览器打开的,在一定程度来说,发布测试版还有本地测试的过程中,微信这种怎么也清不掉的缓存真的很烦人. 下面直入正题, 给出清除微信浏览器缓存的终极方法: 登出微信,再重新登录微信.  ☆☆☆ 如果嫌麻烦的话, 可以试一下不一定成功的清除缓存方法: 1. 重新刷新几次,知道缓存被刷掉   ☆ 2. 在改变的资源后面加上版本号,也就是例如index.html?v=1234654   ☆☆ <script> if (!window.name) {

MyEclipse中的内置浏览器中的历史记录怎么清除

eclipse内置浏览器的访问记录是存储在对应的工程目录下的.metadata配置中,也就是说你新建一个工程的话就没有了. 如果确实要删除那就找到工作空间中的org.eclipse.ui.browser.prefs文件,例如我的工作空间是D:\rapin那么文件所在的位置为:D:\rapin\.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.ui.browser.prefs 把文件里面的internalWebBro

《解决微信内置浏览器返回上一页强制刷新问题方法》

微信内置浏览器在返回上一页面,且上一页面包含AJAX代码时,页面就会被强制刷新,极度影响用户体验.而我们想要的效果是:返回上一页面时,页面还停留在原来的状态,AJAX获取到的数据还在,滚动条也在原来的位置. BINGO~ 通过HTML5的history API + 缓存可以做到这一点. 执行原理: 1.0.通过history API的 history.pushState或 history.replaceState 保存AJAX状态: 2.0.同时将AJAX获取到的数据缓存起来(可以考虑使用H5的

微信内置浏览器直接下载APK的解决方法

最近很多朋友问我微信内置浏览器直接下载APK有没有什么解决办法?那么今天我就跟大家分享一下有关微信内直接下载APK的解决方法.微信作为一个通讯平台,使用人数一直稳居第一.也正因如此,微信成为了目前最具有营销价值和推广产品的渠道之一.但是使用过微信的人都知道,在微信里面,用户是不能直接下载APK的.原因很简单,腾讯为了自身利益,在微信中屏蔽了外来下载链接.最简单的解决方法,在微信中打开第三方链接或下载apk需要用户通过点击"微信右上角的三个点"然后选择在浏览器里面打开,如下图 就是因为这

微信内置浏览器打开app下载网页提示已停止访问怎么办?哪些api接口可以恢复访问

微信内置浏览器打开app下载网页提示已停止访问怎么办?哪些api接口可以恢复网页正常访问? 现如今微信对第三方app下载链接的拦截是越来越严格了,下载链接在微信中分享转发经常会被拦截,一旦被拦截用户就只能复制链接手动打开浏览器粘贴才能访问,如此给用户带来的体验台差,用户量无法有效地累积起来,从而导致推广成本一直在增加,推广效率却无法有明显的提升. 所以针对这个问题,特写这篇文章分享哪些api接口可以免费实现微信内自动跳转浏览器下载app的功能. Mindjump-API接口平台 366API-接

PHP限制网页只能在微信内置浏览器中查看并显示

微信现在算是火了,围绕微信开发的应用也越来越多了,前段时间,自己公司需要,用PHP写了一个微信应用,为了防止自己辛苦写成的PHP应用被盗用,于是通过PHP做了限制,只能在微信自带的浏览器中才能打开本应用,一开始无头绪,后经多查证,总算把这功能弄出来了,现在把具体的代码分享给大家. 1 2 3 4 5 6 7 8 <?php $useragent = addslashes($_SERVER['HTTP_USER_AGENT']); if(strpos($useragent, 'MicroMesse