在 Xamarin.Forms WebView 中执行 Javascript
Execute Javascript in Xamarin.Forms WebView
我正在尝试使用此处描述的教程在我的 Xamarin.Forms WebView 中执行 Javascript:
https://www.xamarinhelp.com/xamarin-forms-webview-executing-javascript/
Android 效果很好,但我在 iOS 上设置时遇到问题。在 iOS 自定义渲染器中,我基本上 return js 执行结果由
return Task.FromResult(this.EvaluateJavascript(js));
从去年开始 iOS api 发生了变化,这行在调试时会抛出错误。事实证明,我应该使用 WkWebViewRenderer 而不是 WebViewRenderer。我尝试更改,但 EvaluateJavascript() 方法现在需要两个参数...一个是 js 字符串,一个是 WKJavascriptEvaluationResult 处理程序...
我不知道如何修改教程中的代码...有人可以帮忙吗?
应该是这样的:
WKJavascriptEvaluationResult handler = (NSObject result, NSError error) => {
if (error != null)
{
Console.WriteLine(result.ToString());
}
};
webView.EvaluateJavaScript(JSCode, handler);
我刚换了
return Task.FromResult(this.EvaluateJavascript(js));
至:
var x = await webView.EvaluateJavascriptAsync(js);
return x;
现在可以使用了
我正在尝试使用此处描述的教程在我的 Xamarin.Forms WebView 中执行 Javascript:
https://www.xamarinhelp.com/xamarin-forms-webview-executing-javascript/
Android 效果很好,但我在 iOS 上设置时遇到问题。在 iOS 自定义渲染器中,我基本上 return js 执行结果由
return Task.FromResult(this.EvaluateJavascript(js));
从去年开始 iOS api 发生了变化,这行在调试时会抛出错误。事实证明,我应该使用 WkWebViewRenderer 而不是 WebViewRenderer。我尝试更改,但 EvaluateJavascript() 方法现在需要两个参数...一个是 js 字符串,一个是 WKJavascriptEvaluationResult 处理程序...
我不知道如何修改教程中的代码...有人可以帮忙吗?
应该是这样的:
WKJavascriptEvaluationResult handler = (NSObject result, NSError error) => {
if (error != null)
{
Console.WriteLine(result.ToString());
}
};
webView.EvaluateJavaScript(JSCode, handler);
我刚换了
return Task.FromResult(this.EvaluateJavascript(js));
至:
var x = await webView.EvaluateJavascriptAsync(js);
return x;
现在可以使用了