Xamarin 本机 Webview Android

马哈茂德·阿明·卡 |

我的 Xamarin Android 应用程序中有一个 Webview,但是当我想使用 Webview.navigate 时,它​​不存在于事件列表中。我想在用户导航时执行代码。但就像我说的,我没有导航事件。

请帮我。

萨兰加·阿苏科拉莱

我遇到了类似的问题,并设法通过实现自定义WebViewClient使用以下方法设置WebViewWebViewClient来解决它SetWebViewClient以这个代码为例:

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

和你的活动:

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章