我正在开发 Windows Phone 8 PhoneGap 应用程序。我希望动态创建应用栏,使其在初始页面中不可见,并且在登录页面中不会有菜单项“LogOut”。我想通过获取 webview 的当前 URL 并相应地显示应用程序栏来实现这一点。所以,我想知道如何获取 PhoneGap webview 的当前 URL 并相应地创建应用栏。我已经通过http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh394044(v=vs.105).aspx
user2189143
问问题
874 次
2 回答
1
我通过以下this.CordovaView.Browser.Navigated += Browser_Navigated;
Browser_Navigated函数处理事件来实现目标。
private void Browser_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
Console.WriteLine("Browser_Navigated:" + sender);
String currentURL = "";
Boolean isAbsolute = this.CordovaView.Browser.Source.IsAbsoluteUri;
ApplicationBar = new ApplicationBar();
ApplicationBar.Mode =ApplicationBarMode.Minimized;
if (isAbsolute)
{
currentURL = this.CordovaView.Browser.Source.AbsoluteUri;
ApplicationBarMenuItem clearCache = new ApplicationBarMenuItem();
clearCache.Text = "Reset user settings";
ApplicationBar.MenuItems.Add(clearCache);
clearCache.Click += new EventHandler(OnClearCache);
if (! currentURL.EndsWith("LoginSP.aspx"))
{
ApplicationBarMenuItem logOut = new ApplicationBarMenuItem();
logOut.Text = "Log out";
ApplicationBar.MenuItems.Add(logOut);
logOut.Click += new EventHandler(OnLogOut);
}
}
else
{
currentURL = "x-wmapp1:" + this.CordovaView.Browser.Source.OriginalString;
ApplicationBar.IsVisible = false;
}
Console.WriteLine("currentURL:" + currentURL);
}
于 2013-08-23T11:00:08.093 回答
0
URI currentURI = ((App)Application.Current).RootFrame.CurrentSource;
应该返回当前视图的 url。这应该放在发生导航的函数中,以便在每次更改页面时调用。然后,您可以使用特定于 URI 类的 toString() 函数将其转换为字符串,并查看它是否与您要查找的页面 url 匹配。如果确实如此,则动态调整应用栏。考虑到您浏览了给出的链接,我假设您已经知道如何执行此操作,但如果您不这样做,请发表评论。
于 2013-08-23T04:57:38.540 回答