如何从webview xamarin android调用javascript函数?



我正在尝试从我的webview xamarin.android应用程序调用javascript函数。我该怎么做?

首先,实现一个自定义WebClient(查看CustomWebClient继承模型(,该模型覆盖OnPageDone(又名OnNavigationComplete(默认行为:

WebView webView = new WebView(this);
webView.Settings.JavaScriptEnabled = true;
webView.Settings.AllowUniversalAccessFromFileURLs = true;
webView.LoadUrl("http://yoururl.com");
SetContentView(webView);

现在你可以像

webView.EvaluateJavascript("JS code",null);

第二个参数是回调。这是javascript结果的占位符。您还可以将JavascriptResult定义为如下:

public class JavascriptResult : Java.Lang.Object, IValueCallback
{
private TaskCompletionSource<string> source;
public Task<string> JsResult => source.Task;
public JavascriptResult()
{
source = new TaskCompletionSource<string>();
}
public void OnReceiveValue(Java.Lang.Object result)
{
try
{
string res = ((Java.Lang.String)result).ToString();
source.SetResult(res);
}
catch (Exception ex)
{
source.SetException(ex);
}
}
}

最新更新