2017-05-02 2 views
0

Ich habe ein Webview in meiner Xamarin Android App, aber wenn ich Webview.navigate verwenden möchte, existiert dies nicht in der Ereignisliste. Ich möchte Code ausführen, wenn der Benutzer navigiert. Aber wie gesagt, ich habe kein Navigations-Event.Xamarin Native Webview Android

Bitte helfen Sie mir.

Antwort

0

Ich war etwas ähnliches und schaffte es mit Blick auf sie zu lösen, indem Sie eine benutzerdefinierte WebViewClient Umsetzung und durch die WebView Einstellung ‚s WebViewClient mit der Methode: SetWebViewClient. Nehmen Sie diesen Code zum Beispiel:

public class CustomWebViewClient : WebViewClient 
{ 
    public event EventHandler<bool> OnPageLoaded; 

    public override bool ShouldOverrideUrlLoading(WebView view, IWebResourceRequest request) 
    { 
     view.LoadUrl(request.Url.ToString()); 
     return true; 
    } 

    public override void OnPageStarted(WebView view, string url, global::Android.Graphics.Bitmap favicon) 
    { 
     base.OnPageStarted(view, url, favicon); 
    } 

    public override void OnPageFinished(WebView view, string url) 
    { 
     OnPageLoaded?.Invoke(this, true); 
    } 

    public override void OnReceivedError(WebView view, IWebResourceRequest request, WebResourceError error) 
    { 
     OnPageLoaded?.Invoke(this, false); 
    } 
} 

Und auf Ihre Aktivität:

var wbMain = FindViewById<WebView>(Resource.Id.wbMain); 
var customWebViewClient = new CustomWebViewClient(); 

customWebViewClient.OnPageLoaded += CustomWebViewClient_OnPageLoaded; 

wbMain.SetWebViewClient(customWebViewClient); 
wbMain.LoadUrl("http://the.page.to.load"); 
+0

danke verry much! Das hat mein Problem gelöst –

Verwandte Themen