iOS – 5秒钟后deviceready没有开机

deviceready不再在第二页上被解雇。 假设我有:

page1.html – 入口页面。

page2.html – 另一个页面。

在页面1中,我有这样的代码:

 document.addEventListener("deviceready", onDeviceReadyPopup, false); function onDeviceReadyPopup(){ window.location.href="page2.html"; } 

在第2页中,我有这样的代码:

 document.addEventListener("deviceready", onDeviceReady, true); function onDeviceReady() { alert("Script - Device ready!"); } 

问题:警报从未触发,因为它不会触发设备deviceready事件。 这将在android正常工作。

我怀疑这是因为我使用window.location.href

deviceready事件在每个应用程序生命周期中仅触发一次。

此事件对于任何应用程序都至关重要 它表示Cordova的设备API已经加载并准备访问。

Cordova由两个代码库组成:native和JavaScript。 在加载本机代码时,会显示自定义加载图像。

但是,JavaScript只会在DOM加载后加载。 这意味着Web应用程序可能会在相应的本机代码可用之前调用Cordova JavaScript函数。

一旦Cordova完全加载,deviceready事件就会触发。

更多信息: http : //cordova.apache.org/docs/en/3.5.0/cordova_events_events.md.html#deviceready

它甚至达到你的ondevicereadypopup()函数? 也许尝试在那里插入一个警报,以确保您的程序在ios中达到它。 还有,当我想在我的ios程序中更改页面时,我通常会这样处理:

 $.mobile.changePage("#idofpage"); 

唯一令我害怕的是,你可能会使用多个html文件,这可能会使这个有点困难,phonegap可以很容易地使用一个html文件中的所有页面,然后唯一标识每个页面。 例如:

 <div data-role="page" id="page1"> <!--content of page--> </div> 

当你像这样做你的网页,那么使用他们的ID来导航到他们是非常容易的,你也可以使用他们之间的一些很好的快速转换。

你是否包含了所有的核心function,现在插件设备API。

就像我下面的3.x一样。 将以下内容添加到config.xml为我工作

 <gap:plugin name="org.apache.cordova.device" /> 

我发现这个页面底部的信息Phonegap Build从2.9升级到3.1