PHP JS判断ブラウザ、微信ブラウザ

5258 ワード


WeChat内蔵ブラウザのUser Agent
どのように微信内蔵ブラウザを判断するかは、まず微信内蔵ブラウザのUser Agentを取得する必要があり、iPhone上の微信のブラウザの検出を経て、その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


そこで、MicroMessengerというキーワードを認識することで、微信に内蔵されているブラウザがあるかどうかを判断します.
 
js判断
function is_weixin(){

    var ua = navigator.userAgent.toLowerCase();

    if(ua.match(/MicroMessenger/i)=="micromessenger") {

        return true;

     } else {

        return false;

    }

}

 
PHP判定
<?php

    

 $agent =  $_SERVER['HTTP_USER_AGENT']    



if( strtopos( $agent, 'MicroMessenger') {



  echo '     ';



}else if( strpos($userAgent,"iPhone") || strpos($userAgent,"iPad") || strpos($userAgent,"iPod") || strpos($userAgent,"iOS") ) {



echo '    ';



 } else if( strpos($userAgent,"Android") ) {

echo 'android   ';



}



?>

携帯電話側で微信ブラウザを判断した後、微信の共有jsスクリプトを使って処理することができます.微信の公式ドキュメントを参照してください.ここでは、大まかな流れと考え方を理解するためのケースを提供します.
<script type="text/javascript" src="/jslib/wx_share.js"></script>

        <script>

            //              、   、  、   

            var imgUrl = '<?php echo base_url('/images/per.png'); ?>';

            var lineLink = 'http://www.baidu.com/';

            var shareTitle = '       ';

            var descContent = '   ,     ?';

            var timeline_title = 'timeline_title';

            var appid = '';

        </script>

        <script>

            function onBridgeReady() {

                WeixinJSBridge.call('showOptionMenu');

            }

        </script>

        <script>

            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>

</head>