2017-09-18 3 views
0

Salut J'ai créé un webview dans des formulaires xamrin. Je veux observer les changements dans l'URL. J'ai essayé les méthodes suivantes mais il n'appelle que sur la page d'accueil ulr. (S'il vous plaît noter le site est en une seule page Ember)Comment observer Xamrin webview url changé?

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

Répondre

0

Il est un problème connu , here vous pouvez trouver les détails.

Utilisez CustomRenderer pour répondre à vos besoins.

Sur Android: Méthode moniteur OnPageFinished dans WebViewClient

Sur iOS: méthode moniteur ShouldStartLoad dans UIWebViewDelegate

Code détail se rapportent à here

+0

Merci pour votre réponse, j'ai essayé cela, mais il est ne fonctionne pas ShouldInterceptRequest ne montre jamais mon URL chargée – pritam001

+0

@ pritam001 Comment est iOS? Je vais tester Android et obtenir le résultat. –

+0

@ pritam001 vous pouvez remplacer 'OnPageFinished (Notifier l'application qu'une page a fini de charger)' pour surveiller l'URL, j'ai testé et cela fonctionne bien. –