Ionic 6应用iPad检测异常:this.platform.is('ios')返回false求助
问题描述
在Cordova iOS平台6.2.0版本下,使用Ionic 6.20.4和cordova-plugin-device 1.1.7时,执行以下代码检测iOS设备时,iPad上this.platform.is('ios')返回false,但在iPhone上完全正常,且该代码在旧版Cordova iOS平台可正常工作:
platform.ready().then(() => { if (this.platform.is('ios')) { console.log("running on iOS device!"); } });
解决方案
同时检测iOS和iPad平台标识
Cordova iOS 6.x版本开始,iPadOS设备会被单独识别为'ipad'平台类型,因此可以同时检测两种标识来覆盖所有iOS/iPadOS设备:platform.ready().then(() => { const isIOSDevice = this.platform.is('ios') || this.platform.is('ipad'); if (isIOSDevice) { console.log("running on iOS/iPadOS device!"); } });升级cordova-plugin-device插件
当前使用的1.1.7版本较旧,新版本已修复iPadOS的识别逻辑,执行以下命令升级:cordova plugin remove cordova-plugin-device cordova plugin add cordova-plugin-device@latest升级后
this.platform.is('ios')即可正常识别iPadOS设备。验证设备识别信息
可以先打印完整的平台信息,确认Cordova对当前设备的标识:platform.ready().then(() => { console.log('当前设备平台列表:', this.platform.platforms()); console.log('Cordova识别的平台:', device.platform); // 需确保已导入device对象 });根据打印结果调整检测逻辑,确保覆盖目标设备类型。
内容的提问来源于stack exchange,提问作者Bashar Altakrouri
相关产品推荐
相关产品推荐

