甲方大大发来贺电,要求扫码提取营业执照中的信用代码和其他信息,头大归头大,安排!
写到一半发现个问题,应该在这里交代一下,营业执照分为旧版和新版,旧版url里不包含信用代码字段,新版url中含有信用代码字段,也就是UUID,新版的可以直接截取,下面主要讲一下旧版的怎么提取
某企业的营业执照信息,通过扫描二维码获得现在的需求是从上面的链接中提取出自己想要的字段,笔者这里需要里面的统一社会信用代码,继续
1.按f12通过前端代码拿到JS Path(如图所示)
copy出来的类似这种document.querySelector("#boxShadow1 > ul > li.icon1 > span"),这里可根据自己的使用场景来复制path,比如iOS可以用XPath
2.根据url提取信用代码code,代码如下
WebSettings webSettings =webView.getSettings();//webView可以在布局里随便写一个宽高设置为0或者gone
webSettings.setJavaScriptEnabled(true);//是否允许JavaScript脚本运行,默认为false。设置true时,会提醒可能造成XSS漏洞
webView.loadUrl(url);//加载
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
//web加载完成后,通过evaluateJavascript()方法接收JS函数的返回值
//将步骤1里的代码复制过来,加上.textContent或者innerText后缀来获取里面的内容
webView.evaluateJavascript("document.querySelector(\"#boxShadow1 > ul > li.icon1 > span\").textContent", new ValueCallback() {
@Override
public void onReceiveValue(String s) {
if (s !=null && !s.equals("null")) {//非空判断
String code = s.replace("\"", "");//去掉多余的""
}
Log.i("zxd", "断点:" + s);//打印,搞定
}
});
}
});
至此,功能完成
网友评论