如何将变量从 webview Javascsript 传递到 Xamarin Forms 代码?

How to pass a variable from webview Javascsript to Xamarin Forms code?

我有一个网页从用户那里获取一些信息,在服务器端处理它 PHP 然后从服务器获取响应。

现在我需要将此(包括网络 UI)实现到我的 Xamarin Forms 应用程序中,所以我考虑过有一个加载网页 URL 的 webview,但现在我可以不知道(甚至没有谷歌搜索)如何将 Javscript 的结果变量的值返回到 C#。

这是一个Javascript样本:-

xhttp.onreadystatechange = function () {
    if (this.readyState == 4 && this.status == 200) {
      let data = JSON.stringify(JSON.parse(this.responseText));
      // Now I want to pass 'data' variable to C#
    }
};

应用程序应该等到它收到这个变量的值然后执行其他事情,或者直到用户按下后退按钮取消整个事情...

感谢任何帮助,在此先感谢。 ^_^

首先,为 webview 创建自定义渲染器。

然后,在各个平台用原生api封装js函数,添加到webview中。

调用函数并传递数据,该方法也会在渲染器中触发。

参考https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/custom-renderer/hybridwebview