Windows Phone 8 PhoneGap 앱을 개발 중입니다. 나는 App Bar를 동적으로 생성하여 초기 페이지에 보이지 않게하고 로그인 페이지에 'LogOut'메뉴 항목이 없도록하고 싶습니다. webview의 현재 URL을 가져 와서 그에 따라 앱 표시 줄을 표시하여이를 달성 할 생각이 있습니다. 그래서 PhoneGap webview의 현재 URL을 얻고 그에 따라 앱 표시 줄을 만드는 방법을 알고 싶습니다. 이미 완료했습니다. http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh394044(v=vs.105).aspxWindows Phone 8에서 App Bar를 동적으로 생성 PhoneGap app
0
A
답변
0
URI currentURI = ((App)Application.Current).RootFrame.CurrentSource;
은 현재보기의 URL을 반환해야합니다. 이 함수는 탐색이 발생하는 함수에 있어야하므로 페이지가 변경 될 때마다 호출됩니다. 그런 다음이를 URI 클래스에 고유 한 toString() 함수를 사용하여 문자열로 변환하고 찾고있는 페이지 URL과 일치하는지 확인할 수 있습니다. 그러면 앱 바가 동적으로 조정됩니다. 나는 당신이 이미 주어진 링크를 거쳤다는 것을 고려하여 이것을하는 방법을 이미 알고 있다고 가정하고있다.하지만 당신이 코멘트를주지 않는다면.
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);
}