dequan1331 / HybridPageKit

A high-performance、high-extensibility、easy integration framework for Hybrid content page. Support most content page types of News App.
MIT License
1.22k stars 187 forks source link

evaluateJavaScript 注入获取web上全部图片的JS代码。获取不到图片 #22

Closed Laixg closed 5 years ago

Laixg commented 5 years ago

通过注入JS代码 获取网页中全部图片,但是不起作用。 在webViewDidFinishNavigation代理中执行的

Laixg commented 5 years ago

注入JS代码 获取web中所有的图片 但是返回值为空

Laixg commented 5 years ago

在demo中新建一个控制器,用wkwebview的loadHTMLString加载数据。 在- (void)webView:(WKWebView )webView didFinishNavigation:(WKNavigation )navigation代理中注入方法,evaluateJavaScript回调中可以获取到图片数据。我这边有个demo 可以加我QQ503661933。希望帮忙看下,感谢

Laixg commented 5 years ago

@"function getImages(){\ var objs = document.getElementsByTagName(\"img\");\ var imgUrlStr='';\ for(var i=0;i<objs.length;i++){\ if(i==0){\ if(objs[i].alt==''){\ imgUrlStr=objs[i].src;\ }\ }else{\ if(objs[i].alt==''){\ imgUrlStr+='#'+objs[i].src;\ }\ }\ objs[i].onclick=function(){\ if(this.alt==''){\ document.location=\"myweb:imageClick:\"+this.src;\ }\ };\ };\ return imgUrlStr;\ };";

karosLi commented 5 years ago

这种方式只能获取当前H5页面的图片吧,如果是分页加载的图片呢,怎么去获取下面更多分页的图片

dequan1331 commented 5 years ago

使用替换Native的方式,是需要H5业务方配合的,比如分页可以提供相应的回调、出发Native函数等等方式。如果没有业务方的配合,个人认为换成Native的意义不大,因为有可能H5有相应的优化、特殊的业务逻辑等,直接替换有可能会导致不稳定、也不一定在性能上有提升。 整体上看,这种方式在两端有固定协议的基础上,会有极大的收益,但是一端单独使用就要评估下了。