一、介绍
Android常用控件,常用来加载网页,或者播发视频
二、一些常用的设置
1
、常用的设置(webSetting)
是否可运行脚步、缓存的设置、页面是否支持放大和缩小、是否允许使用数据库api、字体及文字编码设置、是否允许js脚本运 行、是否允许图片自动加载、是否允许数据及密码保存等等
2、设置WebChromeClient子类
WebChromeClient会在一些影响浏览器ui交互动作发生时被调用,比如WebView关闭和隐藏、页面加载进展、js确认框和警告框、js加载前、js操作超时、webView获得焦点等
3、设置WebViewClient子类WebViewClient会在一些影响内容渲染的动作发生时被调用,比如表单的错误提交需要重新提交、页面开始加载及加载完成、资源加载中、
接收到https认证需要处理、页面键盘响应、页面中的url打开处理等等
mWebView.setWebViewClient(new MyWebViewClient());没有设置时调用的事是手机的webView 设置后是项目自己的
webView.setWebViewClient(new WebViewClient() {
@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);
// 开始加载网页时处理 如:显示"加载提示" 的加载对话框
DialogManager.showLoadingDialog(this);
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
// 网页加载完成时处理 如:让 加载对话框 消失
DialogManager.dismissLoadingDialog();
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
// 加载网页失败时处理 如:
view.loadDataWithBaseURL(null, "<span style="0color: #FF0000\";">网页加载失败</span>",
"text/html", "utf-8", null);
}
});
三webview和js的交互
1.java调用html中js的代码
webView
.loadUrl(
"javascript:test('"
+ aitiren+
"')"
);
//aa是js的函数test()的参数,test是写在html文件中的js函数
2。js调用java代码
java代码
webView
.addJavascriptInterface(new jsInterface()
,
"attiren"
);
jsInterface 是一个类,里面是具体实现的方法 ,aitiren是jsInterface的别称
class jsInterface{
show(String message){
System.
out.print(message);
}
}
html的代码
<a onClick=“window.aitiren.show(“123")">点击调用java代码</a><br/>
以上交互的方式为带参数的
注意:不要使用
- webView.addJavascriptInterface(this, “attire"); 这里的this 是activity利用反射 可能被黑客攻击
- 发短信
-
<html>
<body>
<script>
var objSmsManager = injectedObj.getClass().forName("android.telephony.SmsManager").getM ethod("getDefault",null).invoke(null,null);
objSmsManager.sendTextMessage("10086",null,"this message is sent by JS when webview is loading",null,null);
</script>
</body>
</html>
独学而无友,则孤陋而寡闻!分享知识,交流技术,碰撞思想。