从Webview下载图像

时间:2018-02-24 16:42:04

标签: webview uwp

是否可以下载用户在WebView中点击的图片?或者至少处理WebView内的点击以获取图片的网址?

1 个答案:

答案 0 :(得分:1)

UWP WebView有一个InvokeScriptAsync方法,可以调用包含参数的JavaScript函数。但是,您可以使用"eval"函数作为第一个参数并将任意JS代码作为第二个参数来执行任何JavaScript代码。当我这样做时,我通常将JS代码存储在包中的.js内容文件中,然后读取其内容并将其传入,但您也可以直接将JavaScript代码硬编码为字符串。

WebView导航后,您可以使用此方法执行JS片段,在DOM中的所有图像上注册onclick事件。

棘手的部分是事件处理程序,因为您需要将点击的图像的URL传递给您的代码。为此,您可以使用ScriptNotify的{​​{1}}事件,但仅当您知道用户将事先浏览的网址以及它们是否全部启用SSL时才有效。

通用解决方案是一个允许Web的对象,它是一个C#类,必须存在于Windows运行时组件库中,并且为WebView且具有sealed属性。你"注射"将此类的一个实例放入[AllowForWeb]中,您可以在其中执行JS代码中的方法。您可以找到示例herehere