如何从 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"。
我该怎么做?
你可以
做类似的事情
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);