APP(iOS)端 从网页拿到第一张图片
来源:互联网 发布:淘宝网男装t恤 编辑:程序博客网 时间:2024/04/30 16:10
class GetWebviewImageHelper:NSObject, WKScriptMessageHandler {
var didGetImg: ((UIImage?) -> (Void))?
init(view:WKWebView) {
super.init()
self.initWebket(view)
}
//初始化 webview 并添加 对 "getimage"(此处是死的) 监听
privatefunc initWebket(webView:WKWebView) {
webView.configuration.userContentController.addScriptMessageHandler(self,name: "getimage")
}
///获取网页图片 //(js 代码)
func getWebViewImages(view:WKWebView) {
let url ="javascript:(function(){var imgs = document.getElementsByTagName(\"img\");if (imgs.length > 0) {" +
"window.webkit.messageHandlers.getimage.postMessage(imgs[0].src);" +
"}" +"})()"
view.evaluateJavaScript(url) { (obj, err)in
iflet error = err {
debugPrint(error.domain)
}
}
}
///受到回调
func userContentController(userContentController:WKUserContentController, didReceiveScriptMessage message:WKScriptMessage) {
iflet urlStr = message.bodyas? String {
let manager =SDWebImageDownloader()
manager.downloadImageWithURL(NSURL(string: urlStr), options:SDWebImageDownloaderOptions(), progress:nil, completed: { (img, data, error,bol) in
self.didGetImg?(img)
})
}
}
//移除监听
func releaseMessageHandler(webView:WKWebView?) {
iflet wb = webView {
wb.configuration.userContentController.removeScriptMessageHandlerForName("getimage")
}
}
}
上面的类是获取 image类 需要在 wekwebview 实例化
然后在webview 的 代理方法里面调用 getWebViewImages 方法
func webView(webView:WKWebView, didFinishNavigation navigation:WKNavigation!) {
iflet title = webView.title {
webTitle = title
netLoadFinsh?(title)
iflet h = helper {
h.getWebViewImages(webView)
}
}
}
同时在deinit 时 移除对webview的监听
deinit {
iflet h = helper {
h.releaseMessageHandler(webView)
}
}
- APP(iOS)端 从网页拿到第一张图片
- ios 从系统相册选择多张图片
- 终极大法:从dedecms的文章里提取第一张图片
- android 实现广告图片自动轮播带文字,可从最后一张滑到第一张,而不是回到第一张。
- IOS 二张图片合并
- IOS 上传多张图片
- iOS上传多张图片
- iOS多张图片上传
- IOS 上传多张图片
- 用.net实现网页图片以幻灯片形式播放,图片从数据库中读取前5张!!
- 互联网上的第一张图片
- C#获取第一张图片路径
- dede 调用文章第一张图片
- 取相册第一张图片--ALAssetsLibrary使用
- php获取文章的第一张图片
- 如何截取视频的第一张图片
- php获取内容第一张图片
- PHP获取编辑器内第一张图片
- 深入理解Java闭包概念
- IDEA ctrl +shift+f 快捷键与win10输入发快捷键冲突
- 润乾报表数据库连接池数据库异常自动重连配置汇总
- Yii2 安装教程
- android ndk jni so库生成
- APP(iOS)端 从网页拿到第一张图片
- 类似今日头条头布局的界面搭建
- PHP版本如何选择?应该使用哪个版本?
- LaTex表格内单元格内容强制换行
- Android 动态获取ListView的高度
- 用css3动画制作幻灯片效果实现不了的问题
- 努力学java框架以及前端语言
- 选择相册图片,会自动旋转90度显示
- linux下mysql、redis、mongodb的配置