使用userAgent判断当前页面是否在webView里打开

需求背景:需要判断网页是否在自己app里的webView里打开(电脑端浏览器、手机qq,手机请求浏览器,微信,微信朋友圈,微博,手机Safari等除外)

1.app内部:需要调用原生app方法

2.非微信的其他浏览器或webview,提示请在微信中打开页面

3.微信:发起微信授权获取的用户信息。

function openInWebview () {
    var ua = navigator.userAgent.toLowerCase();
    if (ua.match(/MicroMessenger/i) == 'micromessenger') { // 微信浏览器判断
        return false;
    } else if (ua.match(/QQ/i) == 'qq') { // QQ浏览器判断
        return false;
    } else if (ua.match(/WeiBo/i) == "weibo") {
        return false;
    } else {
        if (ua.match(/Android/i) != null) {
            return ua.match(/browser/i) == null;
        } else if (ua.match(/iPhone/i) != null) {
            return ua.match(/safari/i) == null;
        } else {
            return (ua.match(/macintosh/i) == null && ua.match(/windows/i) == null);
        }
    }
}

使用方式

if(openInWebview()){
  //在app内打开
   //to do something
   //例如
   window.android.showToast();
}else{
  // 其他地方
  // 发起微信授权
  // 网页链接
例如:
  window.location.href = window.routerList.loginByEduUser;

}

备注:此判断在电脑端,使用手机模式预览,且选择安卓手机机型的时候,判断会有问题(会判断为是在app内打开)。但是在真机上是好的。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值