android的webView的教程,Android WebView 研发教程(示例代码)

声明在先:必须在AndroidMainfest.xml 里面声明权限,否则在Java里面编写的所有WebView浏览网页的代码都无法正常使用

1.WebView的使用

(a). 创建WebView的实例加入到Activity中

WebView webview = new WebView(this);

setContentView(webview);

或者在xml中配置WebView

android:layout_width="match_parent"android:layout_height="match_parent" >

(b). 访问网页

webview.loadUrl("https://www.baidu.com/");

2.WebView API使用详解

(a). 请求加载网页部分

public void loadData (String data, String mimeType, String encoding)

加载指定的data数据

参数说明:

data  字符串String形式的数据 可以通过base64编码而来

mineType data数据的 MIME类型, e.g. ‘text/html‘

encoding data数据的编码格式

注意:

1.Javascript有同源限制,同源策略限制了一个源中加载文本或者脚本与来自其他源中的数据交互方式。避免这种限制可以使用loadDataWithBaseURL()方法。

2.encoding参数制定data参数是否为base64或者 URL 编码,如果data是base64编码那么 encoding必须填写 "base64“。

————————————————————————————————————————————————————

public void loadDataWithBaseURL (String baseUrl, String data, String mimeType, String encoding, String historyUrl)

使用baseUrl加载base URL的网页内容,baseUrl解决相关url使用Javascript相同源问题。

————————————————————————————————————————————————————

public void loadUrl (String url)

加载制定url的网页内容

————————————————————————————————————————————————————

public void loadUrl (String url, Map additionalHttpHeaders)

加载制定url并携带http header数据。

————————————————————————————————————————————————————

public void reload ()

重新加载页面  注意:页面所有资源会重新加载

————————————————————————————————————————————————————

public void stopLoading ()

停止加载页面

(b). 网页的前进后退

public void goBack () // 页面后退

public void goForward () // 页面前进

public void goBackOrForward (int steps) // 以当前的index为起始点前进或者后退到历史记录中指定的steps, 如果steps为负数则为后退,正数则为前进

public boolean canGoForward () // 判断页面是否能够前进

public boolean canGoBack () // 判断页面是否能够后退

(c). JavaScript操作

public void addJavascriptInterface (Object object, String name)

当网页需要和App进行交互时,可以注入Java对象提供给JavaScritp调用.  Java对象提供相应的方法供js使用.

注意:在Android 4.2以下使用这个api会涉及到JavaScript安全问题, javascript可以通过反射这个Java对象的相关类进行攻击。

————————————————————————————————————————————————————

public void evaluateJavascript (String script, ValueCallback resultCallback)

这个方法在Android 4.4系统引入,因此只能在Android4.4系统中才能使用,提供在当前页面显示上下文中异步执行javascript代码

注意: 这个方法必须在UI线程调用,这个函数的回调也会在UI线程执行。那么在Android4.4一下如何执行javascrit代码呢?可以通过 WebView提供的loadUrl方法:具体格式如下:

webView.loadUrl("javascript:alert(injectedObject.toString())");

其中javascript: 是执行javascript代码的标识 , 后面是javascript语句。

————————————————————————————————————————————————————

public void removeJavascriptInterface (String name)

删除addJavascripInterface时对webview注入的java对象. 此方法在不同的Android系统WebView会有问题,会存在失效情况。

(d). 网页查找功能

public void findAllAsync (String find)

异步执行查找网页内包含的字符并设置高亮,查找结果会回调.

————————————————————————————————————————————————————

public void findNext (boolean forward)

查找下一个匹配的字符

(e). WebView 事件回调监听

public void setWebChromeClient (WebChromeClient client)

主要通知客户端app加载当前网页的 title,Favicon,progress,javascript dialog等事件,通知客户端处理这些相应的事件。

————————————————————————————————————————————————————

public void setWebViewClient (WebViewClient client)

主要通知客户端app加载当前网页时的各种时机状态,onPageStart,onPageFinish,onReceiveError等事件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值