2013-08-22 2 views
0

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
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); 
     } 

참조 : https://github.com/dev-mobile/cordova-starter/blob/master/win7_cordova_starter/wp7_CordovaStarter/MainPage.xaml.cs