我有一个WP8 Cordova应用程序,在本地有一个页面,然后它重定向到服务器以获得更多功能。这两个页面都提供了cordova JS API,并且运行良好。
除非我想再次访问本地首页。它的任何锚点(指向x-wmapp0:www/index.html
)都不能在HTML端工作。
此外,任何插件和CordovaBrowser.Navigate()
调用的技巧都会导致UnauthorizedAccessException
错误。
后退让我尝试回到这样的浏览器历史记录中:
window.history.go(-window.history.length + 1);
但是如果我在远程页面上花费任何时间,这没有任何作用。所以这也不适用!
有没有一个体面的方式来到起始页面?在C#或其他方面的帮助下?
答案 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!)。