本帖最后由 钮钴禄小懒子 于 2022-7-19 20:23 编辑
最近公司的一个项目是搭建在微信内核浏览器中,为避免用户使用各种乱七八糟的PC浏览器或移动浏览器打开而带来不必要的麻烦,就网上搜了一些代码,限制用户只可以在手机微信内打开链接,分享在论坛大家互相学习,互利共勉,如果大家有更好的方法欢迎分享。先上效果图,如下图,我在Safari浏览器打开,提示如下
下图为pc微信内核内置浏览器打开报错提示页面
好了,废话不多说,进入正题
【1】:在模板命令写好判断的js命令。(js命令我也是百度找来的,各位格友如有更好的代码,欢迎call me)
- var ua = navigator.userAgent.toLowerCase();
- var isWeixin = ua.indexOf('micromessenger') != -1;
- if (!isWeixin) {
- window.location.href = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=888"//只要不是在微信内部打开网页的,就会跳转提示页面,appid必写,可随意写,也可以写已获取的
- }
- var system = {};
- var p = navigator.platform;
- var u = navigator.userAgent;
- var pre_url = Forguncy.CommandHelper.getVariableValue("pre_url");//pre_url来自设置参数命令。参考下图
- system.win = p.indexOf("Win") == 0;
- system.mac = p.indexOf("Mac") == 0;
- system.x11 = (p == "X11") || (p.indexOf("Linux") == 0);
- if (system.win || system.mac || system.xll) {//如果是PC端
- if (u.indexOf('Windows Phone') > -1) { //win手机端
- } else {
- window.location.href = pre_url+"/error";//错误跳转地址
- }
- }
复制代码 下图为模板命令截图
建议大家将url前缀存在数据表中,每次调用都作为变量重新获取,这样可以避免url变更,还需要手动去工程文件更改。如下图,我将项目应用url存在数据表中,各位需要将url改为自己项目应用地址才可以。
【2】:在页面调用。这一步相对工作量就比较大了,我们需要在所有移动端页面的页面加载时命令调用第一步填写的模板命令,坐等官方大大给出优化方案
【3】:源工程文件
网页限制微信客户端打开判断.fgcc
(90.07 KB, 下载次数: 60)
|