IBM Worklight 6.0 – WL.Client.reloadApp()在Windows Phone 8中不起作用
我们正在使用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中的exception::发生了未知错误。 错误:80020006。错误:InvokeScriptCallback中的exception::发生了未知错误。 错误:80020006。
这是我们的退出function:
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%'); };
2014年4月8日更新
我使用了您在之前的答案中提供的示例项目 。
这是一个更新版本: WindowsTestApp
我做了什么:
-
删除了
wlCommonInit()
path
变量的使用。 -
在
$.mobile.changePage()
添加了changeHash: false
选项。例如:
$.mobile.changePage("Pages/MyAccount.html", { changeHash: false });
-
在WindowTestApp.html中
从
HEAD
元素中删除了这一行: -
在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);
在使用WL.Client.reloadApp()
情况下,第3步正确使用changePage
。
步骤4似乎是jQuery / jQuery Mobile中的一个错误,特定于处理Windows Phone中的文件位置。
查看编辑过的评论和问题,问题可能出在所使用的路径上。
查看IBM Worklight Getting Started网页中提供的多页示例项目。 它包含WP8的特殊处理,您可能需要将其应用于您的注销function。
构建多页面应用程序培训模块
多页示例项目
- 见幻灯片8和9
- 幻灯片8讨论了下面的实施变化
- 幻灯片9讨论了您必须在jQuery Mobile的JS中执行的更改,以使页面导航工作。
- 由于您使用的是jQuery Mobile,请查看此问题及其答案: IBM Worklight v 5.0.6 – 无法在Windows Phone 7.5环境中导航多页
请注意如何专门为Windows Phone 8处理路径。
common \ 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