使用 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?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Cordova 获取 iOS 用户设置的设备名称?
Cordova/jQuery - 识别您的应用程序是在 Web/移动浏览器还是移动应用程序 (Android/iOS) 上运行