无法在没有 Internet 连接的情况下运行 Worklight 应用程序

Posted

技术标签:

【中文标题】无法在没有 Internet 连接的情况下运行 Worklight 应用程序【英文标题】:Unable to run worklight application without internet connection 【发布时间】:2015-05-11 10:30:55 【问题描述】:

在没有启用 wifi 或移动数据连接的情况下运行 worklight 应用程序时遇到了一个大问题。应用程序启动然后退出,我需要进入主屏幕然后执行一些逻辑。在这种情况下,永远不会调用 wlCommonInit。我调试了应用程序,发现有些东西正在发送消息“onMessage(exit,null)”,然后调用 onDestroy()

重现步骤: - 关闭 wifi 和移动数据并启动应用程序

使用环境: - 工作灯 6.2 - 安卓

【问题讨论】:

您没有解释您在应用程序中所做的事情:它是否在启动时尝试连接到服务器,如果是,那么如何。简而言之 - 提供可以调试的东西。 在本机中,我在 onCreate() 中执行类似操作:WL.createInstance(this); WL.getInstance().showSplashScreen(this); WL.getInstance().initializeWebFramework(getApplicationContext(), this); if (result.getStatusCode() == WLInitWebFrameworkResult.SUCCESS) super.loadUrl(WL.getInstance().getMainhtmlFilePath()); // Custom webView this.appView.setWebViewClient(makeWebViewClient(appView)); 在 js 中,我尝试像这样连接:WL.Client.connect( onSuccess: wlInitSuccess, onFailure: wlInitFailure); 在 loadUrl 调用后应用程序转到 onDestroy 同样,如果您可以提供一个可以重现此问题的示例应用程序(不一定是您的特定应用程序),那么调试起来会更容易。同时提及reproduction steps。 -- 请不要使用 cmets,您有问题的编辑按钮 请提供你的js代码。 @Mo.Ashfaq js 代码到底需要什么 【参考方案1】:

在 Worklight 6.2.0.01 中,我使用 android 环境创建了一个新的混合应用程序。

此应用程序执行以下操作。该应用程序安装在运行 Android OS 5 的 Android Nexus 5 设备中。该设备设置为飞行模式(无 WiFi,无 3G)。在启动应用程序时,onFailure 函数被调用,正如预期的那样。没有崩溃。

提供您的实现,以便对其进行调试。

function wlCommonInit()
    WL.Client.connect(onSuccess: success, onFailure: failure);    


function success() 
    alert ("success");


function failure() 
    alert ("failure");

【讨论】:

我也创建了一个新项目并在 飞行模式 下启动它,并且 onFailure 事件正如你所说的那样被触发,但在我的应用程序不是。 适配器是否可能对这种行为负责,因为我没有看到与新创建的应用程序和我的应用程序有很多差异...... 适配器也不应该导致崩溃。我们已经问过你好几次了 - 为你提供一个崩溃的项目。 我比较了新创建的应用程序和我的应用程序,我看到了这种行为的原因。这是我的代码... 10x

以上是关于无法在没有 Internet 连接的情况下运行 Worklight 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有来自脚本的 Internet 连接的情况下在 Python 中转发地理编码?

w10电脑无法连接internet出现一个黄色叹号

在没有 Internet 连接的情况下手动配置 KnpPaginatorBundle

有没有办法在没有 Internet 连接的情况下在 webview 中加载网站?

可以在卸载整个浏览器的情况下运行富 Internet 应用程序吗?

允许 UIWebView 在没有 Internet 连接的情况下加载 http://localhost:port/path URI