安卓获取webview加载的内容
2018-03-10 18:10
453 查看
在页面加载webView,进行初始化设置@SuppressLint("SetJavaScriptEnabled")
private void initWebView() {
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new InJavaScriptLocalObj(),"java_obj");
webView.loadUrl(url);
// 给WebView设置监听
webView.setWebViewClient(new WebViewClient() {
//跳转连接
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// 所有连接强制在当前WeiView加载,不跳服务器
webView.loadUrl(url);
return true;
}
//加载结束
@Override
public void onPageFinished(WebView view, String url) {
// 获取页面内容
view.loadUrl("javascript:window.java_obj.showSource("
+ "document.getElementsByTagName('html')[0].innerHTML);");
// 获取解析<meta name="share-description"content="获取到的值">
view.loadUrl("javascript:window.java_obj.showDescription("
+ "document.querySelector('meta[name=\"share-description\"]').getAttribute('content')"
+ ");");
super.onPageFinished(view,url);
}
});
}
public final class InJavaScriptLocalObj
{
@JavascriptInterface
public void showSource(String html) {
System.out.println("====>html="+ html);
}
@JavascriptInterface
public void showDescription(String str) {
System.out.println("====>html="+ str);
}
}即可在showSource()方法里面获取到webView加载的内容了
注意:安卓端声明的 java_obj要和webView注入时
view.loadUrl("javascript:window.java_obj.showSource("
+ "document.getElementsByTagName('html')[0].innerHTML);");
里的window.java_obj保持一致。
private void initWebView() {
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new InJavaScriptLocalObj(),"java_obj");
webView.loadUrl(url);
// 给WebView设置监听
webView.setWebViewClient(new WebViewClient() {
//跳转连接
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// 所有连接强制在当前WeiView加载,不跳服务器
webView.loadUrl(url);
return true;
}
//加载结束
@Override
public void onPageFinished(WebView view, String url) {
// 获取页面内容
view.loadUrl("javascript:window.java_obj.showSource("
+ "document.getElementsByTagName('html')[0].innerHTML);");
// 获取解析<meta name="share-description"content="获取到的值">
view.loadUrl("javascript:window.java_obj.showDescription("
+ "document.querySelector('meta[name=\"share-description\"]').getAttribute('content')"
+ ");");
super.onPageFinished(view,url);
}
});
}
public final class InJavaScriptLocalObj
{
@JavascriptInterface
public void showSource(String html) {
System.out.println("====>html="+ html);
}
@JavascriptInterface
public void showDescription(String str) {
System.out.println("====>html="+ str);
}
}即可在showSource()方法里面获取到webView加载的内容了
注意:安卓端声明的 java_obj要和webView注入时
view.loadUrl("javascript:window.java_obj.showSource("
+ "document.getElementsByTagName('html')[0].innerHTML);");
里的window.java_obj保持一致。
相关文章推荐
- 获取WebView加载HTML时网页中的内容
- 获取WebView加载HTML时网页中的内容
- 安卓加载webView获取title
- 获取WebView加载HTML时网页中的内容 获取页面元素
- 获取WebView加载HTML时网页中的内容
- 02、获取 WebView 控件中,加载的 HTML 网页内容
- Android中通过Java获取Webview加载内容
- iOS 基于JavaScriptCore 不等webView加载完毕就交互,网页获取原生内容。 webView的高级用法之JS交互,js与oc的相互调用
- 获取WebView加载的网页内容并进行动态修改
- 获取WebView加载HTML时网页中的内容
- Android中通过Java获取Webview加载内容
- 获取WebView加载HTML时网页中的内容
- 获取WebView加载的网页内容并进行动态修改
- mui.init()方法中可以有子页面和预加载两项内容,它们是否都在页面加载完成时创建其对应的webview对象?
- NetWork获取连接状态/WebView的简单用法/当按返回键时返回堆栈内容
- webview部分内容偶尔加载不出来,html5在webview渲染问题
- iPad加载webView内容
- Android webview加载网页只想显示部分内容
- 安卓webview快速加载网页研究提速(二级加速)
- android中webview加载html,输入框不能输入内容问题记录