【发布时间】:2018-02-25 13:35:09
【问题描述】:
是否可以下载用户在WebView 中单击的图像?或者至少处理 WebView 内的点击以获取图片的 URL?
【问题讨论】:
是否可以下载用户在WebView 中单击的图像?或者至少处理 WebView 内的点击以获取图片的 URL?
【问题讨论】:
UWP WebView 有一个 InvokeScriptAsync 方法,可以调用包含参数的 JavaScript 函数。但是,您可以通过使用"eval" 函数作为第一个参数并将您的任意JS 代码作为第二个参数来执行任何JavaScript 代码。当我这样做时,我通常将 JS 代码存储在包中的 .js 内容文件中,然后读取其内容并将其传入,但您也可以直接将 JavaScript 代码硬编码为字符串。
WebView 导航后,您可以使用此方法执行 JS sn-p,在 DOM 中的所有图像上注册 onclick 事件。
棘手的部分是事件处理程序,因为您需要将点击的图像的 URL 传递给您的代码。为此,您可以使用WebView 的ScriptNotify 事件,但这只有在您知道用户将预先浏览的 URL 并且它们都启用了 SSL 时才有效。
通用解决方案是 Web 允许的对象,它是 C# 类,必须存在于 Windows 运行时组件库中,并且是 sealed 并具有 [AllowForWeb] 属性。您将此类的一个实例“注入”到WebView 中,您可以在其上执行 JS 代码中的方法。您可以找到示例 here 或 here。
【讨论】: