html頁面限制只能在微信中開啟,並且不可以使用分享及瀏覽器開啟功能
阿新 • • 發佈:2019-01-31
由於使用掃一掃來獲取登陸連結,所以不希望網址暴露在瀏覽器,所以要求必須是微信瀏覽。
可以通過請求的標識來判斷是什麼瀏覽器:
var ua = navigator.userAgent.toLowerCase(); var isWeixin = ua.indexOf('micromessenger') != -1; var isAndroid = ua.indexOf('android') != -1; var isIos = (ua.indexOf('iphone') != -1) || (ua.indexOf('ipad') != -1);
以上就是判斷的瀏覽器型別,有微信,android,ios
if (!isWeixin) {
var opened = window.open('wxError.html', '_self');
}
如果判斷不是微信瀏覽器,則跳轉到提示頁面,頁面使用微信原始頁面如下圖
這個頁面(wxError.html)比較簡單,程式碼如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> </head> <body> <script type="text/javascript"> var ua = navigator.userAgent.toLowerCase(); var isWeixin = ua.indexOf('micromessenger') != -1; var isAndroid = ua.indexOf('android') != -1; var isIos = (ua.indexOf('iphone') != -1) || (ua.indexOf('ipad') != -1); if (!isWeixin) { document.head.innerHTML = '<title>抱歉,出錯了</title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0"><link rel="stylesheet" type="text/css" href="weui.css">'; document.body.innerHTML = '<div class="weui_msg"><div class="weui_icon_area"><i class="weui_icon_info weui_icon_msg"></i></div><div class="weui_text_area"><h4 class="weui_msg_title">請在微信客戶端開啟連結</h4></div></div>'; } </script> </body> </html>
weui.css 由於太長就不在這裡貼了,可以點選下載
禁止分享和瀏覽器開啟等選項禁用
var ua = navigator.userAgent.toLowerCase(); var isWeixin = ua.indexOf('micromessenger') != -1; if (!isWeixin) { var opened = window.open('wxError.html', '_self'); } $(function(){ /*禁用微信分享功能 */ function onBridgeReady() { WeixinJSBridge.call('hideOptionMenu'); } 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(); } if (isWeixin) { window.alert = function(name){ var iframe = document.createElement("IFRAME"); iframe.style.display="none"; iframe.setAttribute("src", 'data:text/plain,'); document.documentElement.appendChild(iframe); window.frames[0].window.alert(name); iframe.parentNode.removeChild(iframe); } }});
這樣就可以了