使用 Cordova 识别 iOS 设备类型 iphone 或 ipad?

Posted

技术标签:

【中文标题】使用 Cordova 识别 iOS 设备类型 iphone 或 ipad?【英文标题】:Using Cordova identify iOS device type iphone or ipad? 【发布时间】:2014-04-08 12:55:42 【问题描述】:

我提交了一个使用 Cordova/Sencha Touch 开发的 ios 应用程序,但被拒绝了。

我有一个功能会在 iphone 和 ipad 上表现不同。我正在使用此代码来识别设备类型:

Ext.os.deviceType.toLowerCase() == "phone"

但这总是返回 "phone",即使我在 ipad 模拟器上运行这个应用程序。

那么,如何解决这个问题,以便我可以成功地将这个应用提交到应用商店。

谢谢。

【问题讨论】:

【参考方案1】:

在 Cordova 上,我使用以下函数来检测平台:

function isandroid() 
    return navigator.userAgent.indexOf("Android") > 0;

function isiOS() 
    return (isiPhone() || isiPad());

function isiPhone() 
    return (navigator.userAgent.indexOf("iPhone") > 0 || navigator.userAgent.indexOf("iPod") > 0) || $(window).width() <= 320;

function isiPad() 
    return navigator.userAgent.indexOf("iPad") > 0 || ($(window).width() <= 1000 && $(window).width() > 320);

$(window).width() 是为了帮助在桌面上进行测试。

【讨论】:

我已经用这个“navigator.userAgent.indexOf("iPhone") > 0”在 iphone 和 ipad 模拟器上检查了这个,并且它都返回“true”。而且我认为使用宽度条件并不是一个好的选择。 宽度条件有助于在桌面上模拟它(例如在 Chrome 浏览器上进行测试)。您可以将其删除以用于生产代码。在我的设备上,此代码有效。我没有在模拟器上检查过。你能在模拟器上向我们展示你的 navigator.userAgent 吗?

以上是关于使用 Cordova 识别 iOS 设备类型 iphone 或 ipad?的主要内容,如果未能解决你的问题,请参考以下文章

如何注册 iOS Safari 应该支持的文档类型?

如何使用 Cordova 获取 iOS 用户设置的设备名称?

Cordova/jQuery - 识别您的应用程序是在 Web/移动浏览器还是移动应用程序 (Android/iOS) 上运行

Cordova 应用程序无法在 iOS 设备上正确显示

通过cordova访问android/ios/win设备摄像头

Cordova 设备在 iOS 中未触发