
如何解决“请在微信客户端打开链接”
起因
某日使用某微信小程序,进行账号认证时需要跳转到小程序指定的一个第三方链接,但是小程序的官方居然没有给这么一个重要功能涉及的链接做备案,被微信拦截了:

去浏览器打开网址后,发现这个第三方网址居然又要求在微信客户端打开:

这时候我有点恼火了,我倒要看看能不能治得了它。
按照小而美的一贯作风,网页检查是否是客户端打开多半不会做得太精细,我猜测应该就是检查一下UA(User Agent)。
我们查看一下网页的源代码:

从var isWeixin = ua.indexOf('micromessenger') != -1;和 if (!isWeixin) 可以看出,它确实是通过检查UA是否为微信自己的Micromessenger来决定是否显示“请在微信客户端打开链接”的。
那么解决问题的方法就很简单了,我们只需要修改自己的UA就好。
以Chrome为例,我们按下f12打开开发者模式。可以看到下方栏目侧面有三个点,点开它,再点击其中的Network conditons:

可以看到有User agent这一选项。我们取消勾选Use browser default,并且在输入框中输入MicroMessenger:

注意不要关闭开发者模式的界面,然后我们再次访问之前的网页,一般来说应该可以使用浏览器正常访问了。
但是在有的情况下,界面虽然不再显示“请在微信客户端打开链接”,但是只剩下一片空白:

这种情况一般是在尝试获取微信的信息,但是由于我们正在使用浏览器访问,网页无法成功获取相关信息。
那么应该怎么办呢?答案很简单,我们复制网址,再在微信中将其打开,让其在微信中获取相关信息。之后,我们再复制在微信中成功进入后的网址,粘贴到浏览器中,按照之前的设置进行后再访问网站即可。
如果在微信中打开网站时,自动跳转到了第三方浏览器,那么多半是微信设置的问题。我们进入设置,选择通用设置,取消勾选使用系统默认浏览器打开网页,一般来说就能正常在微信里打开认证网页了。
