我建议以下调试步骤:
a) 转到您的设备浏览器并浏览到 http://xx.xx.xx.xx:8080/console
-> 如果这不起作用,您有一个明显的 IP 地址问题。然后你必须弄清楚为什么,也许你有一个赛门铁克的东西可以阻止任何传入你桌面的流量 - 他们确实这样做了。你应该做一个明确的允许。
b) 如果 a) 有效,那么您需要检查您的代码以确保您的应用程序在启动时确实尝试连接到服务器。否则应用程序只会在调用适配器时尝试连接。
现在,转到您的代码。打开 initOptions.js 文件。我通常会将 connectOnStartup 设置为 true,但也会启用 onConnectionFailure 以便它在没有连接时脱机运行。
var wlInitOptions = {
// # Should application automatically attempt to connect to Worklight Server on application start up
// # The default value is true, we are overriding it to false here.
connectOnStartup : true,
// # The callback function to invoke in case application fails to connect to Worklight Server
onConnectionFailure: function (){wlCommonInit();},
// # Worklight server connection timeout
timeout: 2000,
};
3) 确保您在 application-descriptor.xml 中有正确的 URL
<worklightServerRootURL> http://xx.xx.xx.xx:8080
</worklightServerRootURL>
如果您使用的是消费者版(实际购买的 WL),您的 URL 将是。<worklightServerRootURL> http://xx.xx.xx.xx:9080/worklight
</worklightServerRootURL>
(注意这些 URL 之间没有空格 - 只是这个网站在有换行符时放了一个空格)
将您的代码重新部署到 WL 服务器并创建一个新的 APK 文件。使用新的 APK 文件更新您的设备。
4)再次使用控制台进行测试,您应该看到控制台。单击预览应用程序链接,它应该可以工作。
5) 现在您已经更新了服务器上的代码和 APK 文件。在设备上再次打开它。
您仍然看到错误消息吗?
如果事情还是不行。
6) 进入应用程序设置,因为您启用了离线模式,它将允许您访问应用程序设置(它是 Android 中的第 4 个按钮)进入Worklight 设置。选择服务器地址-> 将工作灯 URL 添加到服务器 URL。当您返回应用程序时,这将自动从您的 WL 服务器重新加载内容。