微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 检测用户是否正在使用webview for android / iOS或常规浏览器

如何检测用户是否正在使用webview for android或iOS浏览页面

在stackoverflow上发布了各种解决方案,但我们还没有针对这两种操作系统的防弹解决方案.

目标是if语句,例如:

if (android_webview) {
    jQuery().text('Welcome webview android user');
} else if (ios_webview) {
    jQuery().text('Welcome webview iOS user');
} else if (ios_without_webview) {
    // iOS user who's running safari, chrome, firefox etc
    jQuery().text('install our iOS app!');
} else if (android_without_webview) {
    // android user who's running safari, chrome, firefox etc
    jQuery().text('install our android app!');
}

到目前为止我尝试过的

检测iOS webview(source):

if (navigator.platform.substr(0,2) === 'iP'){

  // iOS (iPhone, iPod, iPad)
  ios_without_webview = true;

  if (window.indexedDB) {
    // WKWebView
    ios_without_webview = false; 
    ios_webview = true; 
  }

}

检测android webview,我们有很多解决方案,如thisthis.我不确定什么是合适的方法,因为每个解决方案似乎都有问题.

解决方法:

检测iOS设备的浏览器与Android设备不同.对于iOS设备,您可以通过使用JavaScript检查用户代理来执行此操作:

var userAgent = window.navigator.userAgent.toLowerCase(),
    safari = /safari/.test( userAgent ),
    ios = /iphone|ipod|ipad/.test( userAgent );

if( ios ) {
    if ( safari ) {
        //browser
    } else if ( !safari ) {
        //webview
    };
} else {
    //not iOS
};

对于Android设备,您需要通过服务器端编码来检查请求标头.

PHP

if ($_SERVER['HTTP_X_REQUESTED_WITH'] == "your.app.id") {
    //webview
} else {
    //browser
}

JSP:

if ("your.app.id".equals(req.getHeader("X-Requested-With")) ){
    //webview
} else {
    //browser
}

编号:detect ipad/iphone webview via javascript

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐