【问题标题】:Worklight App inside an Android FragmentAndroid 片段中的 Worklight 应用程序
【发布时间】:2013-07-15 02:50:05
【问题描述】:

有没有办法在 Android 片段中托管 Worklight 应用程序?

我尝试在 Fragments onCreateView 中使用 WLWebView

WLWebView webView = new WLWebView(getActivity());
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("file:///path_to_app.html_file", 60000);
return webView;

但即使我可以看到 HTML,它也会导致超时错误。这可能是由于我们使用WL.Client.connect() 导致与Worklight 的连接失败。该错误未指定哪个 URL 超时。

我确实相信 WLDroidGap 类(用作主要活动)为 WLWebView 添加了很多额外功能以使事情正常进行,但我无法访问源代码以查看具体内容。

我们的要求是我们希望拥有一个托管 Worklight 应用程序的本机应用程序。

这可能吗?

【问题讨论】:

    标签: android cordova ibm-mobilefirst


    【解决方案1】:

    创建 CordovaWebViewClient() 和 CordovaChromeClient() 实例并将它们与您的 webView 一起使用。查看https://github.com/apache/cordova-android/blob/master/framework/src/org/apache/cordova/CordovaActivity.java的两个init()方法

    webView.setWebViewClient(webViewClient);
    webView.setWebChromeClient(webChromeClient);
    webViewClient.setWebView(webView);
    webChromeClient.setWebView(webView);
    

    【讨论】:

    • 查看 WLDroidGap 类,它似乎将很多 Worklight 内容附加到 web 视图?这没有必要吗?
    【解决方案2】:

    让原生应用托管 Worklight Hybrid 应用的基本原理是什么?

    目前的替代方案是:

    1. 使用Worklight Native API for Android 的本机应用程序
    2. 使用WL.NativePage.show 显示原生屏幕的混合应用

    更多信息请参阅Getting Started training modules,第 6 章和第 7 章。

    【讨论】:

    • Idan,其基本原理是在新开发的 Worklight 应用程序旁边重用已开发的本机组件(页面)。安东在他的回答中提到的可以实现吗?因为它似乎使用的是 Cordova API 而不是 Worklight,尽管大部分功能是相同的。
    • 好吧,我会采用“使用 wl.nativepage”的方法,而不是“使用带有 Worklight 的本机应用程序”,这听起来令人费解。您可以尝试 Anton 的建议,但 IMO 比使用 Hybrid 应用程序显示本机页面更有效...
    • 不幸的是,它还有更多内容。有一个自定义的原生导航和 native 滑动事件。我已经考虑过您建议的其他选项,因为我过去曾使用过它们。我的问题是关于我们是否可以在本机应用程序中托管 Worklight 混合应用程序。
    • 我对此没有很好的答案。可以使用 Anton 的方法,但没有官方支持。我们成功地在 Android 后台服务中使用了 Worklight 的活动,这有点相关/相同。我建议然后参考安东的答案,看看你是否可以用它做点什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-30
    • 2013-03-07
    • 2021-06-28
    • 1970-01-01
    • 2014-03-08
    • 1970-01-01
    相关资源
    最近更新 更多