IBM Worklight 6.0 - WL.Client.reloadApp()在Windows Phone 8中不起作用

时间:2014-04-01 17:20:53

标签: jquery jquery-mobile windows-phone-8 ibm-mobilefirst

我们正在使用Worklight 6.0.0企业版,目前正在为Android,BB,Windows Phone 8和iOS构建混合应用程序。

我们在点击注销按钮时调用WL.Client.reloadApp()时遇到以下错误。这适用于除WP8之外的所有操作系统。

  

CordovaBrowser_NavigationFailed ::   ///www/default/www/default/pages/www/default/pages/www/default/pages/www/default/pages/myaccount.html   错误:InvokeScriptCallback中的异常::未知错误   发生了。错误:80020006。错误:InvokeScriptCallback中的异常::   出现未知错误。错误:80020006。

这是我们的退出功能:

logout() {
    window.localStorage.clear();
    $.mobile.changePage("../MainPage.html");
    $('#username').val('');
    $('#password').val('');
    $("#Footer").show();
    $("#ui_logoutlst").hide();
    $("#homeBt_menu").hide();
    $('ul#QuickLinks li').width('50%');
};

2 个答案:

答案 0 :(得分:0)

查看已编辑的评论和问题,问题可能出在所使用的路径上。

查看IBM Worklight Getting Started webpage中提供的多页示例项目。它包含WP8的特殊处理,您可能需要将其应用于您的注销功能。

Building a multi-page application training module
Multi-page sample project

请注意路径是如何专门为Windows Phone 8处理的。
共同\ main.js

var path = "";

function wlCommonInit(){
    // Special case for Windows Phone 8 only.
    if (WL.Client.getEnvironment() == WL.Environment.WINDOWS_PHONE_8) {
        path = "/www/default/";
    }
   ...
   ...
}

您现在需要做以下两件事之一:

  • 说明了WP8的路径
  • 如果您使用
  • ,则更改jQuery Mobile的JS

答案 1 :(得分:0)

2014年4月8日更新

我在之前的回答中使用了sample project you've provided 这是更新版本:WindowsTestApp

我做了什么:

  1. 已删除pathwlCommonInit()变量的使用。

  2. changeHash: false选项添加到$.mobile.changePage()

    例如:$.mobile.changePage("Pages/MyAccount.html", { changeHash: false });

  3. 在WindowTestApp.html

    HEAD元素中删除了这一行:

    <script>window.$ = window.jQuery = WLJQ;</script>

  4. 在js \ jquery-1.10.2.js中:

    查找

      

    xhr.open(s.type,s.url,s.async);

    更改为

      

    s.url = s.url.replace(“x-wmapp0:///”,“”);
      xhr.open(s.type,s.url,s.async);


  5. 在使用changePage的情况下,第3步正确使用WL.Client.reloadApp()

    步骤4似乎是jQuery / jQuery Mobile中的一个错误,特定于处理Windows Phone中的文件位置。