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
- phonegap navigator.connection是未定义的
- 模拟器显示使用离子的黑色屏幕
- 最小化iOS-Phonegap / Cordova应用程序
- 将phoneGap与本机iOS应用程序集成
- Xcode 8和iOS 10 Cordova项目上的代码签名错误
- Objective-C vs PhoneGap
- 如何在Phonegap ios应用中embeddedyoutubevideo
- Cordova插件仅在iOS第二次使用THREAD WARNING打开时才起作用。 你如何获得插件来初始化onload?
- 没有findPhonegap 2.1.0 Cordova / CDVViewController.h文件