Iphone PhoneGap 2.1:升级(2.0到2.1)后,未远程调用onDeviceReady

Iphone PhoneGap 2.1:升级(2.0到2.1)后,未远程调用onDeviceReady,iphone,cordova,updates,Iphone,Cordova,Updates,我有一个iPhone PhoneGap应用程序。远程服务器中有一个HTML文件,项目包中有另一个HTML文件(本地) 升级到PhoneGap 2.1后,服务器端不再调用我的onDeviceReady()方法(侦听“deviceready”)。我在本地有一个HTML文件,在本地调用onDeviceReady方法没有任何问题。但是在重定向到网页应用程序后,不再调用OnDevicerady()方法。我在使用PhoneGap 2.0时没有遇到这种问题。有人知道为什么会这样吗 我使用控制台创建了一个全新的

我有一个iPhone PhoneGap应用程序。远程服务器中有一个HTML文件,项目包中有另一个HTML文件(本地)

升级到PhoneGap 2.1后,服务器端不再调用我的onDeviceReady()方法(侦听“deviceready”)。我在本地有一个HTML文件,在本地调用onDeviceReady方法没有任何问题。但是在重定向到网页应用程序后,不再调用OnDevicerady()方法。我在使用PhoneGap 2.0时没有遇到这种问题。有人知道为什么会这样吗

我使用控制台创建了一个全新的(模板)PG项目,并将www文件夹添加到我的服务器中。在template项目中,我重定向到TemplatePhoneGap项目的www远程文件夹中的index.html。我已经意识到,同样的问题总是会发生:onDeviceLoad方法没有被调用。这就是phonegap的模板项目。它在本地工作正常,但在服务器上运行时不正常。我允许的ExternalHosts已设置为“*”(允许所有主机)

我发现,其他开发者也有同样的问题:


有人知道如何解决这个问题吗?提前感谢。

PhoneGap开发团队已经回答了我的Jira问题,他们的解决方案解决了我的问题。这是他们写的(https://issues.apache.org/jira/browse/CB-1525):

要在本地解决此问题,请更改cordova.js文件中的以下行: execXhr.open('HEAD',“file:///!gap_exec”,true)

致:
execXhr.open('HEAD',“/!gap_exec”,true)

调用“device.name”在远程调用时返回“null”,但在本地调用时不返回null。看起来PhoneGap并没有被远程初始化,而只是使用本地文件。测试方案:使用SafariDeveloper工具(或WEINRE)调用任意JavaScript代码(JavaScript注入)并调用“alert(device.name);”。一个警报出现了。如果index.html是本地读取的,则警报会显示设备名称,但如果index.html是放置在远程服务器上的,则警报会显示字符串“null”。您是否更新了服务器端的cordova JavaScript文件并正确使用html文件指南(路径正确?@Maffo:当然,使用safari developer工具,我已经查过所有的路了。你真厉害!谢谢你找到这个解决方案。我不知道我会怎么做。非常感谢。