首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 與 JavaScript 偵測請求是否來自微信內建瀏覽器

     編輯:PHP 相關知識

PHP 與 JavaScript 偵測請求是否來自微信內建瀏覽器

在開發微信相關應用時,常需判斷用戶是否透過微信內建瀏覽器訪問。微信瀏覽器的 User-Agent 字串中包含 MicroMessenger 關鍵字及版本號,並可由此區分 iOS 或 Android 設備。

微信瀏覽器的 User-Agent 特徵

iPhone 環境:

Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B176 MicroMessenger/4.3.2

Android 環境:

Mozilla/5.0 (Linux; U; Android 2.3.6; zh-cn; GT-S5660 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MicroMessenger/4.5.255

不難發現,MicroMessenger 標識與版本號是判斷的關鍵。

PHP 端判斷邏輯

透過 $_SERVER['HTTP_USER_AGENT'] 檢查是否包含 MicroMessenger:

function is_weixin() {
    return strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false;
}

if (is_weixin()) {
    echo "Welcome to wechat world";
} else {
    header('HTTP/1.1 401 Unauthorized');
    echo "請使用微信訪問本網址。";
}

此函式可直接用於防盜鏈或限制非微信環境訪問。

JavaScript 端判斷邏輯

前端同樣可透過 navigator.userAgent 進行檢測:

function is_weixin() {
    var ua = navigator.userAgent.toLowerCase();
    return ua.match(/MicroMessenger/i) == "micromessenger";
}

結合微信 JS-SDK 進行分享配置

確認為微信環境後,可引入微信分享 JS-SDK 並配置分享參數:

<script type="text/javascript" src="/jslib/wx_share.js"></script>
<script>
var imgUrl = '<?php echo base_url("/images/per.png"); ?>';
var lineLink = 'https://www.baidu.com/';
var shareTitle = '我來給你送錢了';
var descContent = '折射率,你知道是啥?';
var timeline_title = 'timeline_title';
var appid = '';
</script>
<script>
function onBridgeReady() {
    WeixinJSBridge.call('showOptionMenu');
}
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();
}
</script>

詳細流程請參考微信官方開發文檔。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved