尝试使用 WebView 上的 JavaScript 按钮调用 C# 代码

Trying to call C# code with a JavaScript button on a WebView

请注意,我特别谈论在单击我的网络视图中的 Javascript 按钮后调用 C#,在本例中为 HybridWebView.

我遵循了很多我看到的提示和想法,例如 XLabs 提供的示例和 Xamarin.Forms 指南中关于 HybridWebViews 的文档。

我有以下结构:

Hybridwebview Class 方法 RegisterActionInvokeAction;

Page 使用我的 HybridWebView;

我的每个平台中的自定义渲染器正在注入 Javascript 我想要的网络视图。

我认为问题出在渲染器中的 InjectJS 方法中。它使用 LoadUrlWebView 中注入 javascript 也就是 "deleting" 我的 WebView 并将其替换为具有 Javascript 的按钮函数。

这是 Android 渲染器的代码!

左边是这创建的结果,右边是我期待的结果

问题是 div 我创建的开始时没有定义宽度和高度值,因此显示的内容已隐藏。

添加 Android.Webkit.WebView.SetWebContentsDebuggingEnabled(true); 然后在设备和 google chrome 工具上调试后修复

在结果上设置高度和宽度救了我。

https://developer.xamarin.com/guides/xamarin-forms/custom-renderer/hybridwebview/ 的库存 HybridWebView 示例存在 "no show" 问题。

如果我 运行 模拟器 运行 没问题。

如果它 运行 是物理设备,则不会显示任何内容。改变 index.html

<p id="result">Result: </p> 

<div id="result" style="height:400px;width:400px;">Result:</div>

显示输出。