我目前正在制作一个自定义传单地图,我使用 xaml 中的 web 视图加载该地图,用户可以在其中执行多个操作,例如添加和删除现有标记。我面临的问题是数据从该 webview 传递回我的 C# 代码。
结构:
我尝试使用隐藏字段来放置用户所做的更改。因此,每当用户删除某个项目时,我都会将该项目放入“DeletedMarkers”隐藏字段中。然后回到我的 xaml.cs,我使用:
var deleteMarkerData = await webView.EvaluateJavaScriptAsync("document.getElementById('deleteMarkerData').value");
在这里我要么得到一个空值,要么得到我删除的标记对象。我每隔 0.2 秒循环一次检查该对象内是否有东西。这是可行的,我正确地获取了对象,没有太多明显的延迟,但现在我想知道是否有任何方法可以以性能更友好的方式将该对象从我的 webview 获取到我的 xaml.cs。
有什么建议吗?
经过我的测试,您可以尝试将您提供的代码更改为:
string deleteMarkerData = await webView.EvaluateJavaScriptAsync("document.getElementById('deleteMarkerData').innerHTML");
通过将
.value
更改为.innerHTML
,deleteMarkerData
可以正确获取值。