1. 使能javascript:
1
|
webView.getSettings().setJavaScriptEnabled( true );
|
2. 编写本地接口
1
2
3
4
5
|
final class InJavaScriptLocalObj {
public void showSource(String html) {
Log.d( "HTML" , html);
}
} |
3. 向网页暴露本地接口
1
|
webView.addJavascriptInterface( new InJavaScriptLocalObj(), "local_obj" );
|
4. 编写自己的WebViewClient,并在onPageFinished中提取网页源码。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
final class MyWebViewClient extends WebViewClient{
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true ;
}
public void onPageStarted(WebView view, String url, Bitmap favicon) {
Log.d( "WebView" , "onPageStarted" );
super .onPageStarted(view, url, favicon);
}
public void onPageFinished(WebView view, String url) {
Log.d( "WebView" , "onPageFinished " );
view.loadUrl( "javascript:window.local_obj.showSource('<head>'+" +
"document.getElementsByTagName('html')[0].innerHTML+'</head>');" );
super .onPageFinished(view, url);
}
} |
组合在一起的代码为:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
package com.hi.briancol.htmlsource;
import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.util.Log;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class HtmlSource extends Activity {
private WebView webView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout.main);
webView = (WebView)findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled( true );
webView.addJavascriptInterface( new InJavaScriptLocalObj(), "local_obj" );
webView.setWebViewClient( new MyWebViewClient());
}
final class MyWebViewClient extends WebViewClient{
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true ;
}
public void onPageStarted(WebView view, String url, Bitmap favicon) {
Log.d( "WebView" , "onPageStarted" );
super .onPageStarted(view, url, favicon);
}
public void onPageFinished(WebView view, String url) {
Log.d( "WebView" , "onPageFinished " );
view.loadUrl( "javascript:window.local_obj.showSource('<head>'+" +
"document.getElementsByTagName('html')[0].innerHTML+'</head>');" );
super .onPageFinished(view, url);
}
}
final class InJavaScriptLocalObj {
public void showSource(String html) {
Log.d( "HTML" , html);
}
}
} |
关键之处在于:
view.loadUrl("javascript:window.local_obj.showSource('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
运行,可以看到在showSource(String html)中打印了网页源码。
相关推荐
Android使用WebView获取网页的源码,将WebView封装进ArthurWebView,直接创建并初始化即可使用!
Android 获取WebView加载网页的例子,这个方法挺简单的,希望大家喜欢。 // 获取WebView对象 WebView webview = (WebView) findViewById(R.id.webview); // 使能JavaScript webview.getSettings()....
Uncaught TypeError: undefined is not a function 在4.4以后如果还用网上流传的取源码方法就会出现这错误。本列做到高低版本都能取。
Android源码——WebViewJS应用源码_new_21.zip
android 平台上的html5webview 源码
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
Android截屏源码,可以截取全屏和局部webview中内容,以及保存到SD卡中和从SD卡中读取所截取图片
Android应用源码之图片轮播(Viwepager)+(读取网络图片)+点击图片(WebView)展项目安卓应用源码下载示.zAndroid应用源码之图片轮播(Viwepager)+(读取网络图片)+点击图片(WebView)展项目安卓应用源码下载示.z ...
最近做项目的时候,老大让我把之前做的webview打开网页的功能修改一下,说是要动态的获取网页的标题,然后显示在我们自己app的标题栏上,然后我就屁颠屁颠的跑去看webview的源码,看看有没有获取标题这个方法。...
Android应用源码之图片轮播(Viwepager)+(读取网络图片)+点击图片(WebView)展示
安卓java获取webview源码 R11-Android-SDK 项目各个模块支持gradle引入 rbridge的导入 implementation 'org.rainboweleven:rbridge:$versionName' 查看各模块最新$versionName版本到: #Rainboweleven Android 使用...
安卓java获取webview源码概括 这是 Adjust:trade_mark: 的 Android SDK。 您可以在 阅读有关 Adjust:trade_mark: 的更多信息。 用其他语言阅读此内容: , , , 。 目录 快速开始 深层链接 事件追踪 自定义参数 附加的...
12.3.1 在Android应用中使用 OpenGL ES 454 12.3.2 绘制平面上的多边形 457 12.3.3 旋转 463 12.4 绘制3D图形 465 12.4.1 构建3D图形 465 12.4.2 应用纹理贴图 469 12.5 本章小结 475 第13章 ...
安卓java获取webview源码 适用于 Android 的 Microsoft 身份验证库 (MSAL) 适用于 Android 的 MSAL 库使您的应用程序能够通过使用行业标准 OAuth2 和 OpenID Connect 支持并在融合体验中使用 。 该库还支持 . 介绍 ...
Android高级应用源码-图片轮播(Viwepager)+(读取网络图片)+点击图片(WebView)展示.zip
安卓Android源码——图片轮播(Viwepager)+(读取网络图片)+点击图片(WebView)展示.rar
安卓Android源码——图片轮播(Viwepager)+(读取网络图片)+点击图片(WebView)展示.zip