androidwebview取内容
❶ android中使用webview怎么获取页面元素
android中的webview获取页面元素的话,其实是需要使用js来获取,如果引入了jquery,也可以来获取。想要在java代码里控制,需要传入一个接口对象
❷ android 怎么获取整个webview 快照
这个方法只截取屏幕中显示出来部分的webView画面,未显示的部分不会被截取。
/**
*截取webView可视区域的截图
*@paramwebView前提:WebView要设置webView.setDrawingCacheEnabled(true);
*@return
*/
(WebViewwebView){
Bitmapbmp=webView.getDrawingCache();
returnbmp;
}
这个看好与上一个是不同的,他是截取webView的整个页面,未显示的也会被截取。
/**
*截取webView快照(webView加载的整个内容的大小)
*@paramwebView
*@return
*/
privateBitmapcaptureWebView(WebViewwebView){
PicturesnapShot=webView.capturePicture();
Bitmapbmp=Bitmap.createBitmap(snapShot.getWidth(),snapShot.getHeight(),Bitmap.Config.ARGB_8888);
Canvascanvas=newCanvas(bmp);
snapShot.draw(canvas);
returnbmp;
}
❸ Android开发中怎样获取WebView的内容宽度高度
可以根据webview的getwidth和getHeight的宽度和高度,来获取显示的高度和宽度,要注意的是需要等待界面加载完才能获取到。
❹ Android 中 Webview 怎么获取打开的网页的 HTML 代码
WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页,实现WebView有以下两种不同的方法:
第一种方法的步骤:
1.在要Activity中实例化WebView组件:WebView webView = new WebView(this);
2.调用WebView的loadUrl()方法,设置WevView要显示的网页:
互联网用:webView.loadUrl("http://网址");
本地文件用:webView.loadUrl("file:///android_asset/XX.html"); 本地文件存放在:assets 文件中
3.调用Activity的setContentView( )方法来显示网页视图
4.用WebView点链接看了很多页以后为了让WebView支持回退功能,需要覆盖覆盖Activity类的onKeyDown()方法,如果不做任何处理,点击系统回退剪键,整个浏览器会调用finish()而结束自身,而不是回退到上一页面
5.需要在AndroidManifest.xml文件中添加权限,否则会出现Web page not available错误。
<uses-permission android:name="android.permission.INTERNET" />
第二种方法的步骤:
1、在布局文件中声明WebView
2、在Activity中实例化WebView
3、调用WebView的loadUrl( )方法,设置WevView要显示的网页
4、为了让WebView能够响应超链接功能,调用setWebViewClient( )方法,设置 WebView视图
5、用WebView点链接看了很多页以后为了让WebView支持回退功能,需要覆盖覆盖Activity类的onKeyDown()方法,如果不做任何处理,点击系统回退剪键,整个浏览器会调用finish()而结束自身,而不是回退到上一页面
6、需要在AndroidManifest.xml文件中添加权限,否则出现Web page not available错误。
<uses-permission android:name="android.permission.INTERNET"/>
❺ android webview如何获取网页输出的提示信息
1.android中利用webview调用网页上的js代码。
Android 中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为true,,然后通过loadUrl就可以直接进行调用,如下所示:
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("javascript:test()");
2. 网页上调用android中java代码的方法
在网页中调用java代码,需要在webview控件中添加javascriptInterface。如下所示:
mWebView.addJavascriptInterface(new Object() {
public void clickOnAndroid() {
mHandler.post(new Runnable() {
public void run() {
Toast.makeText(Test.this, "测试调用java", Toast.LENGTH_LONG).show();
}
});
}
}, "demo");
在网页中,只需要像调用js方法一样,进行调用就可以
<div id='b'><a onclick="window.demo.clickOnAndroid()">b.c</a></div>
3. Java代码调用js并传参
首先需要带参数的js函数,如function test(str),然后只需在调用js时传入参数即可,如下所示:
mWebView.loadUrl("javascript:test('aa')");
4.Js中调用java函数并传参
首先一样需要带参数的函数形式,但需注意此处的参数需要final类型,即得到以后不可修改,如果需要修改其中的值,可以先设置中间变量,然后进行修改。如下所示:
mWebView.addJavascriptInterface(new Object() {
public void clickOnAndroid(final int i) {
mHandler.post(new Runnable() {
public void run() {
int j = i;
j++;
Toast.makeText(Test.this, "测试调用java" + String.valueOf(j), Toast.LENGTH_LONG).show();
}
});
}
}, "demo");
然后在html页面中,利用如下代码<div id='b'><a onclick="window.demo.clickOnAndroid(2)">b.c</a></div>,
即可实现调用
❻ Android中如何获取网页中的指定内容
问题
由于android的WebView等相关类没有提供解析html网页内容的接口,想要获取网页的内容并解析出想要的元素内容,用android的固有API是没办法了。
解决思路
第一种,使用第三方解析html库,和android提供的库有冲突的。
第二种,使用JAVA与JS回调,通过JS解析html;
开源工具
适合android的HTML解析库的jsoup。
jsoup作用
可直接解析某个URL地址、HTML文本内容。
提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的操作方法来取出和操作数据。
支持 HTML5 的解析器分支,可确保跟现在的浏览器一样解析 HTML 的方法,同时降低了解析的时间和内存的占用。
获取指定网页中的title的代码例子演示
❼ android中使用webview怎么获取页面元素
webview里面的,其实是html页面,获取页面元素的话,可以使用DOM或者JQuery
❽ android webview 怎么更改a标签或者获得里面的数据
Web与html交互分为2个部分:
1、 android端的webview控制,以及数据交互工具类
2、 html页面的javascript
同样,页面交互是双向的,所以有如下两种操作:
1、 通过android应用程序,调用html页面的javascript,完成修改html等操作。
2、 通过html页面javascript调用android端工具类,达到html页面数据回传给android应用处理。
//与html页面交互工具类
util = new WebFormUtil(this, webView);
//webview初始化
webView = (WebView) findViewById(R.id.webView);
WebSettings webSettings = webView.getSettings();
//允许执行javascript语句
webSettings.setJavaScriptEnabled(true);
//允许允许插件
webSettings.setPluginsEnabled(true);
//html页面大小自适应
webSettings.setDefaultZoom(WebSettings.ZoomDensity.FAR);
//指定在html页面中,javascript通过调用mtsinfo,来调用util工具类
webView.addJavascriptInterface(util, "mtsinfo");
webView.loadUrl("file://" + UNZIPDIR + "/" + index[indexId]);
//指定webview显示规则
webView.setWebViewClient(new WebViewClientEmb());
public class WebViewClientEmb extends WebViewClient {
// 在WebView中而不是系统默认浏览器中显示页面
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
// 页面载入前调用
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon){
super.onPageStarted(view, url, favicon);
}
// 页面载入完成后调用
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
}