请问"请在微信客户端打开链接"这个功能是怎么做到的?

在网上下载了一个源码.但是在pc端浏览器打开页面,直接就提示 "请在微信客户端打开链接",怎么把这个功能去掉?
还有就是这个功能怎么实现的?
难道是单纯的js脚本window.location跳转?

阅读 12.1k
4 个回答

https://mp.weixin.qq.com/wiki...
触发微信登录授权就会提示这个 实际上你访问的是微信的授权链接 并不是你自己的网页
https://open.weixin.qq.com/connect/oauth2/authorize?appid=你的公众号appid&redirect_uri=登录成功后重定向的地址&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

去掉这个判断可以模拟 UA 来实现 判断微信浏览器的标准是 UA 中包含 MicroMessenger 字符串
例如:Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B329 MicroMessenger/5.0.1

但即使你模拟了也没什么用 因为还是需要微信登录

php里面可以判断访问浏览器是不是微信

一般存在两种情况

一  存在对客户端的判断 如果不是微信 则弹出提示
is_weixin: function(){
    var ua = navigator.userAgent.toLowerCase();
    if(ua.match(/MicroMessenger/i)=="micromessenger") {
        return true;
    } else {
        return false;
    }
},

二 存在微信网页授权的情况

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
//redirect_uri 这个才是你真正的链接

这种情况是用户在微信客户端中访问第三方网页,在用户点击授权后,公众号可以通过微信网页授权机制,来获取用户基本信息 比如微信头像 微信用户昵称,所以场景是必须要在微信端的,微信会对此做一个限制不是微信端的话会出提示

具体查看https://mp.weixin.qq.com/wiki...

去掉判断微信的js

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题