Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PhoneGap/JQueryMobile页面未初始化_Jquery_Cordova - Fatal编程技术网

PhoneGap/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中调用的函数基本上是一个虚拟函数,它包装了我

在构建我的应用程序时,我使用JQueryMobile创建了它。我让一切都正常工作,包括使用

 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
之前触发。您是否尝试使用设置工作电话间隔,然后将代码插入该应用程序?是的,这就是我开始时所做的。