如何从 SetWebViewClient 调用返回

本文关键字:调用 返回 SetWebViewClient | 更新日期: 2023-09-27 18:37:28

我有一个简单的单机器人问题

活动 A 调用活动 B

活动 B 具有 Web 视图,如下所示

SetContentView(Resource.Layout.webView);
WebView webView = FindViewById<WebView>(Resource.Id.webView1);
webView.Settings.JavaScriptEnabled = true;
webView.LoadUrl(url);
webView.SetWebViewClient(new dealWithWebView());

在 dealWithWebView() 中,我有这个

class dealWithWebView : WebViewClient
{
    WebView webView;
    public override void OnPageFinished(WebView view, string url)
    {
        webView = view;
        Context c = webView.Context;
        // it goes away and does something
        // calls another method in the class which returns back here
    }
}

问题是我似乎无法让它从 WebViewClient 返回,然后从"B"返回到"A"。

我该怎么做?

如何从 SetWebViewClient 调用返回

你可以

做类似的事情

SetContentView(Resource.Layout.webView);
WebView webView = FindViewById<WebView>(Resource.Id.webView1);
webView.Settings.JavaScriptEnabled = true;
webView.LoadUrl(url);
webView.SetWebViewClient(new dealWithWebView(this));

其中使用:

class dealWithWebView : WebViewClient
{
    Activity parent;
    public dealWithWebView(Activity parent)
    {
        this.parent = parent;
    }
    public override void OnPageFinished(WebView view, string url)
    {
        var webView = view;
        Context c = webView.Context;
        // it goes away and does something
        // calls another method in the class which returns back here
        // all done - so finish the parent now
        parent.Finish();
    }
}

您还可以使用:

class WebViewClientCallback : WebViewClient
{
    public event EventHandler PageLoaded = delegate { };
    public override void OnPageFinished(WebView view, string url)
    {
        base.OnPageFinished(view, url);
        PageLoaded(this, EventArgs.Empty);
    }
}

用法:

clientCallback = new WebViewClientCallback();
clientCallback.PageLoaded += delegate(object sender, EventArgs e) {
    // What to do next?
    // Do the things you want to do after PageIsLoaded       
};
webview.SetWebViewClient(clientCallback);
webview.LoadData("<p>HTML-CONTENT</p>", "text/html; charset=UTF-8", null);