PhoneGap/JQueryMobile页面未初始化
在构建我的应用程序时,我使用JQueryMobile创建了它。我让一切都正常工作,包括使用PhoneGap/JQueryMobile页面未初始化,jquery,cordova,Jquery,Cordova,在构建我的应用程序时,我使用JQueryMobile创建了它。我让一切都正常工作,包括使用 jquery($document).on('pageinit','#someID',function(){ ...}); 过渡效果很好。。。移动到新页面在所有浏览器中都可以正常工作 然后我使用PhoneGap2.9.0进行设置。我添加了cordova.js的include。初始化了应用程序,还添加了var app=;到我的main.js文件。在var-app中调用的函数基本上是一个虚拟函数,它包装了我
jquery($document).on('pageinit','#someID',function(){ ...});
过渡效果很好。。。移动到新页面在所有浏览器中都可以正常工作
然后我使用PhoneGap2.9.0进行设置。我添加了cordova.js的include。初始化了应用程序,还添加了var app=;到我的main.js文件。在var-app中调用的函数基本上是一个虚拟函数,它包装了我所有的pageinit调用。我无法让它继续工作,根据window.console.log条目,我知道pageinit调用不会发生
我的问题是一个绝望的问题,因为我在这个问题上浪费了太多的时间。我该怎么做才能让我的页面被激活?我相信这是问题的关键
这是一个JSFIDLE-。它不会产生任何效果。但它会让您了解我上面描述的内容,您应该绑定到DeviceReady而不是pageinit 听起来好像你正试图在普通浏览器中使用PhoneGap运行你的应用程序。IIRC,PhoneGap在普通浏览器中不起作用。
devicerady
事件不会在普通浏览器中触发。为了让PhoneGap发挥作用,您必须构建一个Android/iOS/。。。应用程序使用中描述的方法之一
但是,如果你想在普通浏览器中测试你的应用程序,有一个模拟PhoneGap API的shim
cordova.js
。尝试在body onload之后添加deviceready,如文档示例:
添加了带负重法的改良小提琴:
请记住添加:
<body onload="onBodyLoad()">
感谢所有与我分享和帮助我的人。最后,我做了一些研究和一些令人痛苦的缓慢调试,得出了下面的解决方案
万一有人遇到这个问题,想知道我是怎么解决的
保持所有JQueryMobile pageinit调用不变。让他们像在网站上一样加载。不要急于将它们放入app.initialize()函数中。当在pageinit中,有一个函数依赖于在app.initialize()期间必须联机的插件时,问题就出现了。PhoneGap的所有插件都需要在该阶段上线
为了解决这个问题,我在main.js文件和app.initialize()之前添加了JSFIDLE中的代码代码>:
*注意,小提琴不会呈现,它只是用来演示我的代码
需要注意的重要部分是,我创建了一个var并将其设置为false。然后在我的pageinit中查看这个变量。由于var=0,因此将跳过依赖于插件的init部分。这使我的页面能够使用JQueryMobile正确加载
现在,在HTML中,我们看到我已经定义了var-app和ondevicerady函数。在我的函数中,我包含了我的插件js文件。在包含该文件的过程中,我运行了一个函数,从被跳过的pageinit调用代码
我希望这能帮你们节省一些时间。我正在运行它xCode@theShadraq你已经在做了。这是addEventListener('deviceready',…)
行。然而,也许这已经太晚了。如果您能提供完整的HTML代码,可能会有所帮助。devicerady
和pageinit
的顺序也可能相反。小提琴中的代码依赖于devicerady
在pageinit
之前触发。您是否尝试使用设置工作电话间隔,然后将代码插入该应用程序?是的,这就是我开始时所做的。