我们正在使用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%');
};
答案 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/";
}
...
...
}
您现在需要做以下两件事之一:
答案 1 :(得分:0)
2014年4月8日更新
我在之前的回答中使用了sample project you've provided 这是更新版本:WindowsTestApp
我做了什么:
已删除path
中wlCommonInit()
变量的使用。
将changeHash: false
选项添加到$.mobile.changePage()
。
例如:$.mobile.changePage("Pages/MyAccount.html", { changeHash: false });
在WindowTestApp.html
中从HEAD
元素中删除了这一行:
<script>window.$ = window.jQuery = WLJQ;</script>
在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);
在使用changePage
的情况下,第3步正确使用WL.Client.reloadApp()
。
步骤4似乎是jQuery / jQuery Mobile中的一个错误,特定于处理Windows Phone中的文件位置。