判断页面是否是微信打开的

原文:判断页面是否是微信打开的

今天遇到一问题,让一个页面在微信上打开,PC上不能直接打开,网上找了许久,没得到满意的答案,而且千篇一律。

<?php
$user_agent = $_SERVER['HTTP_USER_AGENT'];
if (strpos($user_agent, 'MicroMessenger') === false) {
    // 非微信浏览器禁止浏览
    echo "HTTP/1.1 401 Unauthorized";
} else {
    // 微信浏览器,允许访问
    echo "MicroMessenger";
    // 获取版本号
    preg_match('/.*?(MicroMessenger\/([0-9.]+))\s*/', $user_agent, $matches);
    echo '<br>Version:'.$matches[2];
}

好吧,我也不能直接反驳,不过,这个确实非常不靠谱、
拿数据说话吧。
下面分别是 Android, WinPhone, iPhone 的 HTTP_USER_AGENT 信息。

1 "HTTP_USER_AGENT": "Mozilla/5.0 (Linux; U; Android 4.1; zh-cn; Galaxy Nexus Build/Wind-Galaxy Nexus-V1.2) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 MicroMessenger/5.0.1.352",
2 "HTTP_USER_AGENT": "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Nokia 920T)",
3 "HTTP_USER_AGENT": "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",

可以看到 WinPhone 根本就没有 MicroMessenger 所以无法判断、
其实 userAgent 判断本来就是很假的事情、
所以我觉得应该用 js 判断是否存在 WeixinJSBridge ,然后 ajax 给 php
php检测到了然后返回真正的页面信息、期间加一个 “玩命加载中...” 这样就很和谐了、
当然 ajax 的话,也是可以欺骗的,但是相对 userAgent 欺骗来说,就要麻烦一点了、
不过我们的目的是检测是否是微信端,而不是欺骗的问题、
具体代码我就不写了,因为最讨厌那种拿来主义了、、
无限的复制黏贴,而且有时候代码被过滤了一部分也不管、

时间: 2024-10-03 22:32:59

判断页面是否是微信打开的的相关文章

php判断页面是否是微信打开的示例

  代码如下: $user_agent = $_SERVER['HTTP_USER_AGENT']; if (strpos($user_agent, 'MicroMessenger') === false) { // 非微信浏览器禁止浏览 echo "HTTP/1.1 401 Unauthorized"; } else { // 微信浏览器,允许访问 echo "MicroMessenger"; // 获取版本号 preg_match('/.*?(MicroMess

php判断页面是否是微信打开的示例(微信打开网页)_php实例

复制代码 代码如下: $user_agent = $_SERVER['HTTP_USER_AGENT'];if (strpos($user_agent, 'MicroMessenger') === false) {    // 非微信浏览器禁止浏览    echo "HTTP/1.1 401 Unauthorized";} else {    // 微信浏览器,允许访问    echo "MicroMessenger";    // 获取版本号    preg_ma

写一个alert弹出的页面,在微信打开时,弹出框会有“关闭网页”的默认按钮,这个怎么去掉呢?

问题描述 写一个alert弹出的页面,在微信打开时,弹出框会有"关闭网页"的默认按钮,这个怎么去掉呢? 解决方案 安卓机无法去掉,除非你自己写一个弹出的函数和页面出来

JS通过Cookie判断页面是否为首次打开_javascript技巧

废话不多说了,直接给大家贴代码了,本文写的不好还请各位大侠见谅. JScript code: function Cookie(key,value) { this.key=key; if(value!=null) { this.value=escape(value); } this.expiresTime=null; this.domain=null; this.path="/"; this.secure=null; } Cookie.prototype.setValue=functio

使用JavaScript脚本判断页面是否在微信中被打开_javascript技巧

1.根据User-Agent判断 // Js获取User-Agent window.navigator.userAgent if(window.navigator.userAgent.match(/MicroMessenger/i) == "micromessenger") // Php获取User-Agent echo $_SERVER['HTTP_USER_AGENT']; if(strpos($_SERVER['HTTP_USER_AGENT'],'MicroMessenger'

JS判断当前页面是否在微信浏览器打开的方法_javascript技巧

本文实例讲述了JS判断当前页面是否在微信浏览器打开的方法.分享给大家供大家参考,具体如下: 最近做很多HTML5的项目,很多页面会通过微信微博等SNS分享出去.在分享页面上提供公司APP的下载.但是在很多应用的浏览器中,点击下载链接无法下载应用.那么针对这些浏览器我们需要给用户提示从safari或者系统自带的浏览器打开分享页面.通过js就可以判断当前页面是在什么浏览器打开的. 以下是一段示例代码,注释中表明了通过JS如何判断是否在微信浏览器打开,是否在QQ空间浏览器,是否在新浪微博打开.当然可以

js判断当前页面用什么浏览器打开的方法_javascript技巧

最近做很多HTML5的项目,很多页面会通过微信微博等SNS分享出去.在分享页面上提供公司APP的下载.但是在很多应用的浏览器中,点击下载链接无法下载应用.那么针对这些浏览器我们需要给用户提示从safari或者系统自带的浏览器打开分享页面,通过js就可以判断当前页面是在什么浏览器打开的. 以下是一段示例代码,注释中表明了通过JS如何判断是否在微信浏览器打开,是否在QQ空间浏览器,是否在新浪微博打开.当然可以做得更完善一点,再加上判断是在移动设备打开还是在PC端浏览器打开的,这一点可以参考本文,更加

JS实现点击网页判断是否安装app并打开否则跳转app store_javascript技巧

常常有这样的场景,咱们开发出来的APP需要进行推广,比如在页面顶部来一张大Banner图片,亦或一张二维码.但往往我们都是直接给推广图片加了一个下载链接(App Store中的).所以咱们来模拟一下用户的操作步骤: 1.用户第一次访问宣传页面 a.点击Banner,进入到APP Store中对应的APP下载页 b.APP下载页中提示:安装:用户点击安装 c.安装完成后,APP下载页中提示:打开:用户继续点击打开 d.用户正常使用APP 2.用户第二次访问宣传页面 a.点击Banner,进入到AP

从四方面谈如何判断页面内容是否有价值

相对于判断网站是否价值而言,其中对于网站单独的页面判断价值如何则显得更为重要了,因为整个网站是否有价值,最终取决于内页的价值,如果一个网站的页面价值性都不错,那么这个网站整体体现出现的价值也是非常不错的.而且在搜索排名中,除了网站的权重影响排名外,页面的价值也同样会影响到排名.比如同样的一篇文章,发布在新浪.网易的排名肯定会比发布在自己网站上的好,原因就是在权重之外的页面价值了.那么对于站长而言,如何判断自己的网站页面是否有价值呢?今天笔者给大家讲解一下判断页面是否有价值的方法. 一.页面访问速