【发布时间】:2011-03-03 12:50:52
【问题描述】:
似乎设备对象在 Android 上是未定义的。 在模拟器、iOS设备&iOS模拟器中定义
显然,我正在检查 window.device(并尝试了 Window.device、window.Device 等的所有变体),但总是未定义——但仅限于真正的 Android 设备。 它适用于所有其他场景。
请帮忙。
【问题讨论】:
似乎设备对象在 Android 上是未定义的。 在模拟器、iOS设备&iOS模拟器中定义
显然,我正在检查 window.device(并尝试了 Window.device、window.Device 等的所有变体),但总是未定义——但仅限于真正的 Android 设备。 它适用于所有其他场景。
请帮忙。
【问题讨论】:
您什么时候尝试使用 window.device?
我发现在 Android 上,当“ondeviceready”被触发时,window.device 变量还不可用。
所以我所做的就是在“ondeviceready”被触发后设置一个 1 秒的超时,然后做我想做的所有事情。
【讨论】:
我的问题是,即使我的插件文件夹列出了 org.apache.cordova.device 插件文件夹,并且在 config.xml 中引用了它。当 onDeviceReady 被触发(或其他任何地方)时,我仍然无法找到 window.device(或只是设备)
我设法修复它的方法是再次运行 $ cordova plugin add cordova-plugin-device,期待“插件已安装”消息,但它实际上已安装到 org.apache.cordova.device 文件夹中,然后一切正常。
我的文件夹不是空的,所以我不确定为什么会这样,我有点担心当我通过 phonegap-build 部署但使用 $ cordova run android 时会发生什么,它现在可以完美运行了。
【讨论】:
检查此代码是否存在:
<!-- cordova script (this will be a 404 during development) -->
<script src="cordova.js"></script>
享受吧!
【讨论】:
在PhoneGap 1.4.1 上deviceready 被触发后至少几十个滴答声之后,Android 上肯定不存在设备。
【讨论】: