2014-05-22 128 views
1

我有一個WP8 Cordova應用程序,它在本地有一個頁面,然後重定向到服務器以獲得更多功能。這兩個頁面都有cordova JS API可用,並且工作正常。如何重新啓動科爾多瓦WP8應用程序?

除了當我想再次去本地開始頁面。它的任何錨點(指向x-wmapp0:www/index.html)都不適用於HTML端。

此外,任何插件和調用CordovaBrowser.Navigate()的技巧都會導致UnauthorizedAccessException錯誤。

回退一直是我去嘗試回到瀏覽器的歷史是這樣的:

window.history.go(-window.history.length + 1); 

但是,如果我花時間在遠程頁面在這一切沒有做任何事情。所以這也不適用!

是否有體面的方式到達首頁?在C#或其他方面的幫助下?

回答

0

所以UnauthorizedAccessException東西來自線程問題。 (對於WP的VS Express有時可以很好地隱藏異常的細節。)

這是一個完整的插件,可用neatest優雅進行重定向。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows; 

using WPCordovaClassLib.Cordova; 
using WPCordovaClassLib.Cordova.Commands; 

namespace Cordova.Extension.Commands 
{ 
    public class Jumper : BaseCommand 
    { 
     /** Instruct the browser component to go to beginning. */ 
     public void goHome(string unused) 
     { 
      Deployment.Current.Dispatcher.BeginInvoke(() => 
      { 
       var webview = WebViewHandler.getInstance().webView; 
       webview.CordovaBrowser.Navigate(webview.StartPageUri); 
      }); 
     } 
    } 
} 

WebViewHandler是共享科爾多瓦的WebView到插件,在another SO answer描述的單(感謝@MikeBryant!)。

+0

有趣的是,這種方法具有類似於'history.go()'方法的凍結特性。 IEMobile在頁面之間做什麼? – progo

相關問題