如何从Swift中的UIWebview加载的HTML内容中获取图像大小和图像分辨率?

时间:2018-03-07 14:13:07

标签: swift image swiftsoup

我正在使用' SwiftSoup' SDK用于解析UIWebView中的HTML内容。我想要从HTML内容中提取的每个图像的图像大小和分辨率。如何在加载图像和从SwiftSoup收到的HTML内容后立即获取图像大小和分辨率?

1 个答案:

答案 0 :(得分:0)

假设您知道何时加载了HTML中的所有图片,这里有一个javascript代码,可用于获取所有图片的尺寸列表:

[{"url":"https://i.stack.imgur.com/rQQMq.png?s=48&g=1","width":24,"height":24},{"url":"https://www.gravatar.com/avatar/46be6ae9d14855f5ab1aaf1d510ab8bc?s=32&d=identicon&r=PG&f=1","width":32,"height":32},{"url":"https://clc.stackoverflow.com/impression.gif?an=49ocs77evOWqh-6LVv8gJiaWI_07xL9f6GBcyDt7dl3NWtNsxo9-twOOBzKwMPRsYGBosGdkZGCRZuqawDHjMeecj4L_WRhSDiyObbJ82JRhP5vp7j6Og2e4ru0W9mRhmNs0gbnc8pVcsT0jc2Z-sTTTwxaOliucyy4LsrAwFLRcfRVt-e6KDEjTco4LjVyda4XkgZqaJcJzLa9Oj4RoMrJk4eJgYpBgYGDg4o1ij5VnYhAHsvk4o9gSmZgYRIBsfmYbtrvCTAxiIHH2ALapwv3t9i1z_NRrAA&md=291","width":0,"height":0}]

通过stringByEvaluatingJavaScript(from:)执行此javascript应该会为您提供一个可以解析的JSON,以获取所需的信息。

例如,此页面的输出为

WKWebView

我建议切换到stringByEvaluatingJavaScript(from:),因为Apple也建议这样做,并且因为WKWebView阻止了(JSON.stringify()提供了此功能的异步版本,也是将为您进行解析,因此您可以从脚本中删除PRODUCT VERSION START_DATE END_DATE Lamp_Fitting 2 01/01/18 11/01/18 Lamp_Fitting 2 12/01/18 NULL Lamp_Fitting 1 24/05/17 11/11/17 Lamp_Fitting 1 12/11/17 NULL 调用。