0

使用 Worklight v5.0.6 代码示例/教程“在混合应用程序中集成服务器生成的页面”(http://public.dhe.ibm.com/software/mobile-solutions/worklight/docs/v506/WebViewOverlay.zip)允许用于集成 Web 内容。代码示例工作正常,Web 内容正确集成。

但是,当我在 apps//common/js/initOptions.js 文件中将 connectOnStartup 设置为 true 时,WebViewOverlay 中的选项卡和 Web 内容无法加载。

我在 wlclient.js (apps//android/native/assets/www/default/wlclient/js/wlclient.js) 中看到有一个检查是否 doConnectionOnStartup 为真,然后调用 WL.Utils.wlCheckReachability(),否则调用 finalizeInit()

似乎 WebViewOverlay 和选项卡是由调用 finalizeInit() 创建的,但如果将 connectOnStartup 设置为 true,则不会调用 finalizeInit。

如何让 WebViewOverlay 和 connectOnStartup 一起工作?

4

2 回答 2

1

这很可能是由连接失败引起的。wlCommonInit 函数只有在连接成功后才会被调用,万一连接失败则永远不会被调用。首先 - 检查您从手机到 WL 服务器的连接性。其次,您可以在 tabbar 初始化后手动使用 WL.Client.connect()(如 Carlos 建议的那样)或在 initOptions 中指定 onConnectionFailure 回调。

于 2013-08-08T04:39:36.193 回答
1

我在评论中提供了我在上面所做的 - 但结果表明没有显示指示更新可用的对话框,而是错误消息“调用回调时出现 WL.SimpleDialog.show() 错误”。在 logcat 的日志消息中可以看到。此日志消息来自第 820 行的 worklight.js (apps//android/native/assets/www/default/wlclient/js/worklight.js)。仅供参考,我确实更改了 worklight.js 代码以打印出错误,它说“找不到类”。那时我没有进一步进行故障排除

因此,应用程序正确地联系了 WL 服务器,但没有出现指示更新可用的对话框。

为了解决这个问题,我只是创建了一个新的混合应用程序并带来了必要的代码来让 WebViewOverlay 工作

于 2013-08-09T21:28:02.383 回答