如何重启Cordova WP8 app?

时间:2014-05-22 07:19:01

标签: c# cordova windows-phone-8

我有一个WP8 Cordova应用程序,在本地有一个页面,然后它重定向到服务器以获得更多功能。这两个页面都提供了cordova JS API,并且运行良好。

除非我想再次访问本地首页。它的任何锚点(指向x-wmapp0:www/index.html)都不能在HTML端工作。

此外,任何插件和CordovaBrowser.Navigate()调用的技巧都会导致UnauthorizedAccessException错误。

后退让我尝试回到这样的浏览器历史记录中:

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

但是如果我在远程页面上花费任何时间,这没有任何作用。所以这也不适用!

有没有一个体面的方式来到起始页面?在C#或其他方面的帮助下?

1 个答案:

答案 0 :(得分:0)

所以UnauthorizedAccessException的东西来自线程问题。 (VS Express for WP有时可以很好地隐藏异常的细节。)

这是一个完整的插件,可以提供最优雅的重定向。

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是用于将Cordova WebView共享到插件的单例,如another SO answer中所述(感谢@MikeBryant!)。