您好,登錄后才能下訂單哦!
一、如何判斷是否為微信內置瀏覽器?
答:通過Header信息里的User-agent來判斷,通過識別MicroMessenger這個關鍵字來確定是否來自微信。即微信的內置瀏覽器的user-agent信息中含有MicroMessenger。
例如:
小米?2A手機微信內置瀏覽器中的useragent信息為:Mozilla/5.0(Linux;U;Android?4.1.1;zh-cn;MI?2A?Build/JRO03L)AppleWebKit/534.30(KHTML,like?Gecko)?Version/4.0?Mobile?Safri/534.30?MicroMessenger/5.0.3.354 ? 谷歌瀏覽器:Mozilla/5.0?(Windows?NT?6.1;?WOW64)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/30.0.1599.101?Safari/537.36 ? 火狐瀏覽器:Mozilla/5.0?(Windows?NT?6.1;?WOW64;?rv:24.0)?Gecko/20100101?Firefox/24.0 ? IE瀏覽器:Mozilla/5.0?(compatible;?MSIE?10.0;?Windows?NT?6.1;?WOW64;?Trident/6.0;?EIE10;ZHCNMSN)
二、如何獲取Header中的user-agent信息?
答:在PHP中,可通過$_SERVER['HTTP_USER_AGENT']來獲取user-agent信息。
三、微信分享到朋友圈的腳本奧秘
微信最近推出的一個社交工具網站www.faxinxi.la,能發投票、活動、文章。譬如你發一個投票,網址是http://www.faxinxila.com/post/vote,但你填完所有信息按提交后,網頁地址并沒有發生跳轉,而是ajax提交信息后彈出的一個遮罩層,提示你點右上角的分享按鈕,注意,點擊分享齊納網址一直保持在/post/vote路徑,但點開分享里的信息已經發生了變化,分享出去后,網址也發生了變化,變成了/vote/3投票實際的展示路徑。這是怎么做到的呢? ? 查看faxinxi里唯一js文件,你會發現一個WeixinJSBridge的輸出對象,再對比下通過微信公眾平臺發出來的文章源文件,也有WeixinJSBridge對象腳本,問題迎刃而解,微信在內嵌webview
里輸出了WeixinJSBridge對象供web斷js調用。faxinxi已經將有用的js提取出來; ,詳細腳本如下:
<!--?lang:?js?--> var?dataForWeixin={ <!--?lang:?js?--> ???appId:"", <!--?lang:?js?--> ???MsgImg:"http://img1.faxinxila.net/images/share_msg.png", <!--?lang:?js?--> ???TLImg:"http://img1.faxinxila.net/images/share.png", <!--?lang:?js?--> ???url:"http://faxinxi.la/vote/1", <!--?lang:?js?--> ???title:"input?title?here", <!--?lang:?js?--> ???desc:"input?description?here", <!--?lang:?js?--> ???fakeid:"", <!--?lang:?js?--> ???callback:function(){} <!--?lang:?js?--> }; <!--?lang:?js?--> (function(){ <!--?lang:?js?--> ???var?onBridgeReady=function(){ <!--?lang:?js?--> ???WeixinJSBridge.on('menu:share:appmessage',?function(argv){ <!--?lang:?js?--> ??????WeixinJSBridge.invoke('sendAppMessage',{ <!--?lang:?js?--> ?????????"appid":dataForWeixin.appId, <!--?lang:?js?--> ?????????"img_url":dataForWeixin.MsgImg, <!--?lang:?js?--> ?????????"img_width":"120", <!--?lang:?js?--> ?????????"img_height":"120", <!--?lang:?js?--> ?????????"link":dataForWeixin.url, <!--?lang:?js?--> ?????????"desc":dataForWeixin.desc, <!--?lang:?js?--> ?????????"title":dataForWeixin.title <!--?lang:?js?--> ??????},?function(res){(dataForWeixin.callback)();}); <!--?lang:?js?--> ???}); <!--?lang:?js?--> ???WeixinJSBridge.on('menu:share:timeline',?function(argv){ <!--?lang:?js?--> ??????(dataForWeixin.callback)(); <!--?lang:?js?--> ??????WeixinJSBridge.invoke('shareTimeline',{ <!--?lang:?js?--> ?????????"img_url":dataForWeixin.TLImg, <!--?lang:?js?--> ?????????"img_width":"120", <!--?lang:?js?--> ?????????"img_height":"120", <!--?lang:?js?--> ?????????"link":dataForWeixin.url, <!--?lang:?js?--> ?????????"desc":dataForWeixin.desc, <!--?lang:?js?--> ?????????"title":dataForWeixin.title <!--?lang:?js?--> ??????},?function(res){}); <!--?lang:?js?--> ???}); <!--?lang:?js?--> ???WeixinJSBridge.on('menu:share:weibo',?function(argv){ <!--?lang:?js?--> ??????WeixinJSBridge.invoke('shareWeibo',{ <!--?lang:?js?--> ?????????"content":dataForWeixin.title, <!--?lang:?js?--> ?????????"url":dataForWeixin.url <!--?lang:?js?--> ??????},?function(res){(dataForWeixin.callback)();}); <!--?lang:?js?--> ???}); <!--?lang:?js?--> ???WeixinJSBridge.on('menu:share:facebook',?function(argv){ <!--?lang:?js?--> ??????(dataForWeixin.callback)(); <!--?lang:?js?--> ??????WeixinJSBridge.invoke('shareFB',{ <!--?lang:?js?--> ?????????"img_url":dataForWeixin.TLImg, <!--?lang:?js?--> ?????????"img_width":"120", <!--?lang:?js?--> ?????????"img_height":"120", <!--?lang:?js?--> ?????????"link":dataForWeixin.url, <!--?lang:?js?--> ?????????"desc":dataForWeixin.desc, <!--?lang:?js?--> ?????????"title":dataForWeixin.title <!--?lang:?js?--> ??????},?function(res){}); <!--?lang:?js?--> ???}); <!--?lang:?js?--> }; <!--?lang:?js?--> if(document.addEventListener){ <!--?lang:?js?--> ???document.addEventListener('WeixinJSBridgeReady',?onBridgeReady,?false); <!--?lang:?js?--> }else?if(document.attachEvent){ <!--?lang:?js?--> ???document.attachEvent('WeixinJSBridgeReady'???,?onBridgeReady); <!--?lang:?js?--> ???document.attachEvent('onWeixinJSBridgeReady'?,?onBridgeReady); <!--?lang:?js?--> } <!--?lang:?js?--> })();
我們可以通過更改var dataForWeixin來改變分享的地址,圖片,標題等。
GetwxLink
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。