2014-04-01 55 views
0

我們正在使用Worklight 6.0.0企業版,目前正在爲Android,BB,Windows Phone 8和iOS構建混合應用程序。IBM Worklight 6.0 - WL.Client.reloadApp()不適用於Windows Phone 8

當點擊註銷按鈕時調用WL.Client.reloadApp()時,我們正在獲取以下錯誤。這適用於除WP8以外的所有操作系統。

CordovaBrowser_NavigationFailed :: ///www/default/www/default/pages/www/default/pages/www/default/pages/www/default/pages/myaccount.html ERROR: Exception in InvokeScriptCallback :: An unknown error has occurred. Error: 80020006. ERROR: Exception in InvokeScriptCallback :: An unknown error has occurred. Error: 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

還解釋更多關於您的註銷功能;它肯定不會重新加載... –

+0

感謝Idan的回覆,在註銷功能中,我們正在清除localstorage並將用戶重定向到應用程序的主頁面,如下所示。當用戶導航到除主頁以外的其他頁面並單擊註銷按鈕功能時,會出現該問題註銷(){window.localStorage.clear();}}。 \t $ .mobile.changePage(「../ MainPage.html」); \t $('#username')。val(''); \t $('#password')。val(''); (「#Footer」)。show(); \t $(「#ui_logoutlst」)。hide(); \t $(「#homeBt_menu」)。hide(); \t $('ul#QuickLinks li')。width('50%'); }; – Shireesh

回答

0

更新2014年4月8日

我在前面的回答中使用的sample project you've provided
這裏有一個更新的版本:WindowsTestApp

我做了什麼:

  1. 不再使用在wlCommonInit()path變量。

  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);


第3步是使用WL.Client.reloadApp()的情況下正確使用changePage

步驟4似乎是jQuery/jQuery Mobile中特定於處理文件在Windows Phone中的位置的錯誤。

+0

因爲第4步我們懷疑我們得到下面的錯誤線程0xc5c已退出代碼259(0x103)。 錯誤:「無法獲取未定義或null參考文件的屬性'__hasPendings':x-wmapp0:/www/default/wlclient/js/worklight.js行:1763」 線程0xc60已退出,代碼爲259(0x103) 。 – Shireesh

+0

@Shireesh,這與這個問題無關;在這個問題中所做的更改是:1)允許在Windows Phone中使用changePage,2)修復不正確的應用程序代碼。請創建一個新的測試用例項目來顯示這個新的錯誤並打開一個新的問題。這個問題已解決 - 請標記爲已回答。 –

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,如果你使用
+0

謝謝伊丹!請提供示例代碼,這意味着我已下載示例項目,但沒有找到任何特定於Windows phone 8.0 – Shireesh

+0

@Shireesh的內容,請參閱wlCommonInit中的路徑處理。這是代碼示例。用代碼片段查看我更新的答案。 –

+0

嗨Adar,該團隊已經與上述建議合作,但沒有奏效,但仍導致相同的錯誤。你能否看看示例應用程序,並讓我們知道團隊正在做的錯誤。你需要在Windows 8物理設備上測試https://www.dropbox.com/s/5cipq7shbk36rsb/Windows8Sample.zip – Shireesh

相關問題