我已经构建了一个应用程序,可以从Web上的外部xml文件加载统计信息。

在网络浏览器中可以正常工作。当我将其与Android版PhoneGap打包时,它也可以正常工作。也可以在BlackBerry Playbook上使用。

但是,当我将其打包用于BlackBerry时,它不起作用。我已经尝试了WebWorks命令行工具和PhoneGap。



当我与WebWorks打包并在Simulator上运行时

Web Inspector上的控制台给我错误

“无法加载资源:服务器以500状态响应(请求资源出错。)”

当我与Phonegap打包并在模拟器上运行时

当我用PhoneGap而不是WebWorks打包时,在警报中弹出以下错误...

gap : ["Network Status", "getConnectionInfo","Network Status0",true]

gap: ["Device","getDeviceInfo","Device1",true]

gap_init:

gap_callbackServer:

gap_poll:




Live version of App(未编译)

ZIP file to run in WebWorks or Phonegap



similar unanswered question



Youtube Video of Problem in BlackBerry Simulator



我尝试过的事情

我已经添加到我的配置文件中。

<access subdomains="false" uri="*"/>


我添加了$ .support.cors函数suggested by phonegap

$( document ).bind( "mobileinit", function() {
    // Make your jQuery Mobile framework configuration changes here!
    $.mobile.allowCrossDomainPages = true;
});

最佳答案

您的模拟器和WebWorks SDK是否最新?

我已经在带有2.0.1.358的实时PlayBook上进行了测试,并在2.0.0.7971的模拟器中进行了测试,没有发现任何问题。

我使用用于PlayBook SDK的2.2.0.15 WebWorks打包了,唯一更改的是config.xml中的ID,打包程序中的点号不接受该ID。



好的,现在我明白了问题所在。

这很模糊,但是Java Smartphones Sims已设置为与另一个称为MDS Simulator的旧模拟器工具一起使用。对于大多数事情而言,它并不是真正必需的,但是它提供的网络类似于设备在Corporate BES环境中所看到的。该模拟器认为,即使MDS Simulator没有运行,它也始终具有所谓的“ MDS”连接。

对于WebWorks应用程序,如果使用不带<rim:connection>标记的默认config.xml文件(在大多数情况下完全没问题),它将在TCP选项之前对MDS进行优先级排序。这是一个问题,因为sim认为它实际上没有MDS连接,而该连接尝试最终失败。

如果将以下代码添加到config.xml中,它将降低MDS的优先级,并使它工作正常。

<rim:connection timeout="60000">
    <id>BIS-B</id>
    <id>TCP_WIFI</id>
    <id>TCP_CELLULAR</id>
    <id>MDS</id>
    <id>WAP2</id>
    <id>WAP</id>
</rim:connection>




最后一个关键项目-您需要设置模拟器才能使用模拟的wifi网络。单击主屏幕的顶部横幅(通过无线指示器),然后打开Wifi,然后在“选项和状态”中单击Wi-Fi网络。然后单击“默认WLAN网络”,并按照步骤进行关联。

10-05 22:19