2017-09-18 2 views
0

Hallo Ich habe eine Webansicht in Xamrin Formen erstellt. Ich möchte die Änderungen in der URL beobachten. Ich habe folgende Methoden versucht, aber es ruft nur die Homepage ulr auf. (Bitte beachten Sie Website ist in ember einzelne Seite)Wie kann ich beobachten, dass Xamrin webview url geändert wurde?

public void setWebview() { 
     var browser = new Xamarin.Forms.WebView(); 
     browser.Source = "https://adsdsdsd.dds.com/"; 
     browser.Navigating += webOnNavigating; 
     browser.Navigated += webOnEndNavigating; 
     browser.PropertyChanged += w_PropertyChanged; 
     browser.PropertyChanging += w_PropertyChanings; 
     stacklayout.Children.Add(browser); 
    } 

    void webOnNavigating(object sender, WebNavigatingEventArgs e) 
    { 

     Console.WriteLine("BNavigating get called" + e.Url); 

    } 

    void webOnEndNavigating(object sender, WebNavigatedEventArgs e) 

    { 

     Console.WriteLine("PNavigating get called"); 

    } 

    void w_PropertyChanged(object sender, PropertyChangedEventArgs e) 
    { 
     //if (e.PropertyName == "Source") 
     { 
      var contentWebView = sender as WebXamrin; 
      var o = contentWebView.Source as UrlWebViewSource; 
      Console.WriteLine("New source: " + o.Url); 
     } 
    } 


    void w_PropertyChanings(object sender, Xamarin.Forms.PropertyChangingEventArgs e) 
    { 
     //if (e.PropertyName == "Source") 
     { 
      var contentWebView = sender as WebXamrin; 
      var o = contentWebView.Source as UrlWebViewSource; 
      Console.WriteLine(" source: " + o.Url); 
     } 
    } 

Antwort

0

Es ist ein bekanntes Problem , here Sie Detail finden.

Verwenden Sie CustomRenderer, um Ihre Anforderung zu erfüllen.

Auf Android: Monitor Methode OnPageFinished in WebViewClient

iOS: Monitor Methode ShouldStartLoad in UIWebViewDelegate

Detailcode siehe here

+0

Vielen Dank für Ihre Antwort, die ich dieses versucht, aber es ist funktioniert nicht ShouldInterceptRequest zeigen nie meine geladene URL – pritam001

+0

@ pritam001 Wie ist iOS? Ich werde in Android testen und das Ergebnis zurückbekommen. –

+0

@ pritam001 Sie können 'OnPageFinished' überschreiben (Benachrichtigen Sie die App, dass eine Seite geladen hat) 'um die URL zu überwachen, habe ich getestet und es funktioniert gut. –

Verwandte Themen