找回密码
 立即注册

QQ登录

只需一步,快速开始

钮钴禄小懒子 悬赏达人认证 活字格认证
金牌服务用户   /  发表于:2022-7-19 20:15  /   查看:1950  /  回复:5
本帖最后由 钮钴禄小懒子 于 2022-7-19 20:23 编辑

最近公司的一个项目是搭建在微信内核浏览器中,为避免用户使用各种乱七八糟的PC浏览器或移动浏览器打开而带来不必要的麻烦,就网上搜了一些代码,限制用户只可以在手机微信内打开链接,分享在论坛大家互相学习,互利共勉,如果大家有更好的方法欢迎分享。先上效果图,如下图,我在Safari浏览器打开,提示如下
af89d3cdfaf5a19df5f6c1c03edbe72.jpg
下图为pc微信内核内置浏览器打开报错提示页面
image.png826550597.png
好了,废话不多说,进入正题
【1】:在模板命令写好判断的js命令。(js命令我也是百度找来的,各位格友如有更好的代码,欢迎call me)
  1. var ua = navigator.userAgent.toLowerCase();
  2.   var isWeixin = ua.indexOf('micromessenger') != -1;
  3.   if (!isWeixin) {
  4.     window.location.href = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=888"//只要不是在微信内部打开网页的,就会跳转提示页面,appid必写,可随意写,也可以写已获取的
  5.   }

  6. var system = {};
  7. var p = navigator.platform;
  8. var u = navigator.userAgent;
  9. var pre_url = Forguncy.CommandHelper.getVariableValue("pre_url");//pre_url来自设置参数命令。参考下图

  10. system.win = p.indexOf("Win") == 0;
  11. system.mac = p.indexOf("Mac") == 0;
  12. system.x11 = (p == "X11") || (p.indexOf("Linux") == 0);
  13. if (system.win || system.mac || system.xll) {//如果是PC端
  14.   if (u.indexOf('Windows Phone') > -1) { //win手机端
  15.   } else {
  16.     window.location.href = pre_url+"/error";//错误跳转地址
  17.   }
  18. }

复制代码
下图为模板命令截图
image.png714251098.png
建议大家将url前缀存在数据表中,每次调用都作为变量重新获取,这样可以避免url变更,还需要手动去工程文件更改。如下图,我将项目应用url存在数据表中,各位需要将url改为自己项目应用地址才可以。
image.png796217345.png

【2】:在页面调用。这一步相对工作量就比较大了,我们需要在所有移动端页面的页面加载时命令调用第一步填写的模板命令,坐等官方大大给出优化方案


【3】:源工程文件
网页限制微信客户端打开判断.fgcc (90.07 KB, 下载次数: 60)

评分

参与人数 1金币 +1000 收起 理由
Chelsey.Wang + 1000 赞一个!

查看全部评分

5 个回复

倒序浏览
hubei333
高级会员   /  发表于:2022-7-20 10:26:09
沙发
都是高手,看见能写代码的,第一反应就是顶礼膜拜。
回复 使用道具 举报
dlxubo
银牌会员   /  发表于:2022-7-21 10:10:32
板凳
回复 使用道具 举报
lijetcart悬赏达人认证 活字格认证
金牌服务用户   /  发表于:2022-7-21 10:25:09
地板
em,其实此处应该有个获取浏览器及版本的插件需求...
回复 使用道具 举报
jinxinwork
初级会员   /  发表于:2023-8-31 19:23:35
5#
都是高手,看见能写代码的,第一反应就是顶礼膜拜
回复 使用道具 举报
fanhuayimeng
论坛元老   /  发表于:2023-9-5 09:24:35
6#
感谢大佬分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部