有没有办法用JavaScript检测网站是在iPad的Safari中运行,还是在应用程序WebView中运行?

推荐答案

它使用window.navigator.userAgentwindow.navigator.standalone的组合.它可以区分与iOS网络应用相关的所有四种状态:Safari(浏览器)、独立(全屏)、uiwebview和非iOS.

演示:http://jsfiddle.net/ThinkingStiff/6qrbn/

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

if( ios ) {
    if ( !standalone && safari ) {
        //browser
    } else if ( standalone && !safari ) {
        //standalone
    } else if ( !standalone && !safari ) {
        //uiwebview
    };
} else {
    //not iOS
};

Ios相关问答推荐

如何从ipad获取用户定义的设备名称,IOS版本应大于16在flutter

SWIFT图表轴订购问题

验证开发人员应用程序证书是否已在您的设备上验证

SwiftUI标题/标题文本背景 colored颜色 屏幕宽度

使用标头UICollectionViewFlowLayout时的简单SwiftUI视图错误

带菜单的选取器不适用于Int32,但适用于Int

如何在expo-react native中从ios平台中排除包

使用异步重载实现Swift协议一致性

在自定义 ButtonStyle 中修改形状 colored颜色

从iOS键盘输入时Flutter TextField输入消失

使用 Foundation 解压缩文件

转换在 NavigationView 中不起作用

DateFormatter 使用 TimeZone 和 Locale 的特定组合返回 nil

在向我的 struct 添加属性后获取线程 10:EXC_BAD_ACCESS (code=EXC_I386_GPFLT)

UIImageView 使用 CGAffineTransform 错误旋转

如何让我的 iOS 应用程序与 api 连接?

try 在 iOS 中处理后退导航按钮操作

从 UIScrollview 中删除内容和框架布局指南

UITextView 内容插图

iOS 中的 Google Analytics SDK 3.0 _sqlite3 链接器错误