`
wpf814533631
  • 浏览: 191917 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

(转)android中如何获得webView中的内容

阅读更多

本文概要:在程序中经常会用到webView来显示网页,但如果能够得到网页中的内容呢,本文将给你一个最简单的事例。文章最后附代码下载。

在做新浪微博客户端的时候需要用到oauth认证,会弹出新浪的认证网页,用户在新浪的网页中授权后返回到程序中完成认证。使用的是类似weibo://OauthActivity这样的URI返回的,也就类似于http://weibo.com这样。但是UC浏览器却无法完成这个地址的跳转,android自带浏览器是没有问题的,所以就想到在程序中内嵌一个webView去显示新浪的网页进行授权。

 

方法很简单,还是直接上代码清楚一些。第一段代码很少,过一下就行了,看到后面你就明白了。

class Handler {
public void show(String data) {
Toast.makeText(WebViewActivity.this, “执行了handler.show方法”, 0).show();
new AlertDialog.Builder(WebViewActivity.this).setMessage(data).create().show();
}
}

这是一个内部内,定义了一个方法,对话框弹出传过来的内容,这个就是用来显示webView中的内容的。

下面是关键代码,大家先看,后面会有解释。

webView = new WebView(this);
setContentView(webView);
webView.loadUrl(“ http://veikr.com/wap/ “);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new Handler(), “handler”);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
Toast.makeText(WebViewActivity.this, “网页加载完成”, 0).show();
view.loadUrl(“javascript:window.handler.show(document.body.innerHTML);”);
super.onPageFinished(view, url);
}
});

1. webView.getSettings().setJavaScriptEnabled(true);

设置webView支持js.

2.webView.addJavascriptInterface(new Handler(), “handler”);

使用了这段代码后就相当于在网页的js中增加了一个叫handler的类,而这个handler就是前面写的内部类。可以直接在网页中这样使用:onClick=”javascript:handler.show(‘hello’)”

也就是说直接通过网页中的js来执行java代码。

3.webView.setWebViewClient(new WebViewClient()

为webView设置一个处理器(暂且这样叫吧),在webView加载完成后执行下面的方法

view.loadUrl(“javascript:window.handler.show(document.body.innerHTML);”);

document.body.innerHTML是一段js,会获取到网页中body标签里的内容,然后把这个值传递给Handler类的show方法。完成。

大家可以用浏览器打开一个网页,加载完成后,在浏览器地址栏输入

javascript:alert(document.body.innerHTML);

看看有什么效果?是不是弹出对话框显示了网页的body内容?

这个也是用到了这个道理。

分享到:
评论

相关推荐

    Android代码-Android-X5WebView基本封装

    Android-X5WebView基本封装和使用 通过OkHttp拦截器、自定义CookieJar有效完成客户端与H5端的Cookie同步管理 监听WebView的加载进度 滚动条的设置(隐藏或者显示,内侧显示还是外侧显示) 优化X5WebView的预加载问题...

    Android_WebView安全攻防指南2020.pdf

    WebView已成为Android App中最容易出现重大漏洞的薄弱环节。为此,本次峰会上,何恩基于自身漏洞挖掘所积累的丰富案例,对WebView安全配置、白名单校验、Js2Java接口安全、Intent Scheme校验等典型漏洞案例进行了...

    android WebView预加载

    这时我们利用启动页或引导页或中间的广告页的时间来预加载webview,利用View.gone,View.visible来实现控件类的隐藏与显示,这样在启动后得到的主页就是一个已经加载好的页面了。此例中加载新浪这样的比较大的网站,...

    android WebView设置setBuiltInZoomControls(true)同时隐藏缩放按钮

    WebView设置setBuiltInZoomControls(true)后,隐藏缩放按钮的控件在webView的源码里是通过: private ZoomButtonsController mZoomButtonsController; 这个私有控件控制的,而且也没有public方法可以获得此...

    android webview加载网页获取对应url 参数值的方法(csdn)————程序.pdf

    android webview加载网页获取对应url 参数值的方法(csdn)————程序

    Android WebViewJS应用源码.zip

    本软件主要是基于Android的WebViewJS的一些应用,输入某个网址的时候,当点击某个应用的时候就会得到相应的值。大家可以看看其代码。学习学习其对应的应用,希望对大家有所帮助。  

    Android 不用webview 执行js代码 rhino-1.7.7.2.jar

    Android 中不在用webview的情况下 执行js代码并得到返回值

    android webview中使用Java调用JavaScript方法并获取返回值

    主要介绍了android webview中使用Java调用JavaScript方法并获取返回值,本文直接给出代码示例,需要的朋友可以参考下

    android教程使用webview访问https的url处理sslerror示例

    但是,当load有ssl层的https页面时,如https://money.183.com.cn/,如果这个网站的安全证书在Android无法得到认证,WebView就会变成一个空白页,而并不会像PC浏览器中那样跳出一个风险提示框。因此,我们必须针对...

    WebView获得return值demo

    自定义WebView , 实现可以获得js端function返回值

    webview 点击图片事件

    点webview 网页图片得到事件 同javascript 得到图片

    Android webview与js交换JSON对象数据示例

    最近几个项目的测试结果,Android无法主动通过调用 webview.loadUrl(“[removed]”+callbackFunction+”(‘”+data+”‘)”); 这种方式将jsonobject类型的data传给js,因为js那边得到就是一个string的对象。与此同时...

    Android-Using-WebView:使用WebView的Android App

    使用WebView的基本Android应用使用Webview帮助将您的网站转换为android应用程序的Android应用。您只需更改url。使用Eclipse 将复制到剪贴板文件->导入-> Git /来自Git的项目->克隆...执照Android-Using-WebView已获得。

    Android webview转PDF的方法示例

    2.‘webView.createPrintDocumentAdapter()’得到打印的PrintDocumentAdapter有了该类就可以使用onWrite方法写入制定的文件,但是这个方法需要传入回调这个悲剧的是这个回调方法是hiden的我们没办法调用 3,字怎么...

    浅谈关于Android WebView上传文件的解决方案

    我们在开发需求的时候,难免会接入一下第三方的H5页面,有些H5页面是具有上传照片的功能,Android 中的 WebView是不能直接打开文件选择弹框的 接下来我讲简单提供一下解决方案,先说一下思路 1.接收WebView打开...

    android中Webview实现截屏三种方式小结

    本人最近学习了android中Webview实现截屏三种方式,下面我来记录一下,有需要了解的朋友可参考。希望此文章对各位有所帮助。 第一种方式 通过调用webview.capturePicture(),得到一个picture对象,根据图像的宽和高创建...

    android webview获取html代码和根据id获取value实例

    最近做一个项目,需要webview获取网页中input的内容,把知识整理一下,做个记录,也希望对大家有所帮助。 2 获取html内容 2.1 初始化webview webview.getSettings().setJavaScriptEnabled(true); webview....

    获得android手机中的传感器信息

    这是一个用来获得android手机中的传感器信息的程序,改正了网上参考的代码的错误,程序能够在本人手机中运行。希望对你有所帮助。

    Android webview

    用来获得树莓派内内网透传来的视频流 经过阿里云映射在了公网ip上

Global site tag (gtag.js) - Google Analytics