Email正文webview加载方式
来源:互联网 发布:淘宝魔盒有什么用 编辑:程序博客网 时间:2024/05/23 11:29
android.webkit.WebView/WebViewClient/WebChromeClient
使用android.webkit.WebView控件
在xml布局文件中定义
<WebView
android:id=”@+id/webkit01”
android:layout:width=”fill_parent”
android:layout:height=”fill_parent”
android:layout:weight=”1” />
在程序中使用WebView
mWebView = (WebView) findViewById(R.id.webview01);
mWebView.loadUrl(“http://www.google.com”);
通过WebSettings来设置WebView的属性和状态
WebSettings webSettings = mWebview.getSettings();
当WebView销毁后,再使用WebSettings会抛出IllegalStateException异常。
WebSettings常用方法
1. setAllowFileAccess, 启用/禁止WebKit访问文件数据
2. setBlockNetworkImage, 是否显示网络图像
3. setBuiltInZoomControls, 是否支持缩放
4. setCacheMode, 设置缓存模式
5. setDefaultFontSize, 设置默认字体大小
6. setDefaultTextEncodingName, 设置默认的解码方式
7. setFixedFontFamily, 设置固定使用的字体
8. setJavaScriptEnabled, 是否支持JavaScript
9. setLayoutAlgorithm, 设置布局方式
10. setLightTouchEnabled,
11. setSupportZoom, 是否支持变焦
使用WebViewClient
WebViewClient用来处理各种通知、请求等事件,WebView调用setWebViewClient()来指定一个WebViewClient对象。
WebViewClient常用方法
1. doUpdateVisitedHistory, 更新历史记录
2. onFormResubmission, 重新请求网页数据
3. onLoadResource, 加载资源
4. onPageFinished, 网页加载完毕
5. onPageStarted, 网页开始加载
6. onReceivedError, 报告错误信息
7. onScaleChanged, 发生Scale改变
8. shouldOverrideUrlLoading, 控制新的连接在当前WebView中打开
使用WebChromeClient
WebChromeClient用来处理JavaScript对话框、网站图标、网站title、加载进度等。
WebChromeClient常用方法
1. onCloseWindow,
2. onCreateWindow,
3. onJsAlert,
4. onJsConfirm,
5. onJsPrompt,
6. onProgressChanged,
7. onReceivedIcon,
8. onReceivedTitle,
9. onRequestFocus
示例:实现简单浏览网页的功能
// 点击返回键返回到前一个页面
if((keyCode==KeyEvent.KEYCODE_BACK) && (mWebView.canGoBack()))
mWebView.goBack();
// 学习如何处理JavaScript常用对话框
WetSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setAllowFileAccess(true);
webSettings.setBuiltInZoomControls(true);
// 设置WebViewClient
mWebView.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
// onPageFinished
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
// onPageStarted
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
});
// 设置WebChromeClient
mWebView.setWebChromeClient(new WebChromeClient(){
// 处理JavaScript中的alert
public boolean onJsAlert(WebView view, String url, String msg, fianl JsResult result) {
// 弹出对话框 builder.show()
// 确定
result.confirm();
return true;
}
// 处理JavaScript中的confirm
public boolean onJsConfirm(WebView view, String url, String msg, fianl JsResult result) {
// 弹出对话框 builder.show()
// 确定
result.confirm();
// 否定
result.cancel();
return true;
}
// 处理JavaScript中的prompt
public boolean onJsPrompt(WebView view, String url, String msg, String defaultValue, fianl JsPromptResult result) {
// 弹出对话框 builder.show()
// 确定
result.confirm(value);
// 否定/取消
result.cancel();
return true;
}
// 处理网页加载进度条
public void onProgressChanged(WebView view, int newProgress) {
getWindow().setFeatureInt(Window.FEATURE_PROGRESS, newProgress*100);
super.onProgressChanged(view, newProgress);
}
// 得到网页的标题,设置app的标题title。
public void onReceivedTitle(WebView view, String title) {
setTitle(title);
super.onReceivedTitle(view, title);
}
});
// 连接按钮点击事件处理程序
String url = mUrlBox.getText().toString();
if(URLUtil.isNetworkUrl(url)){
mWebView.loadUrl(url);
}
// 点击返回按键
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
// 示例代码:弹出对话框
final View dialogView = mInflater.inflate(R.layout.xxx, null);
Builder builder = new Builder(mContext);
builder.setTitle(“xxx”);
builder.setView(dialogView);
// 肯定
builder.setPositiveButton(android.R.string.ok, new AlertDialog.OnclickListener(){
public void onClick(DialogInterface dialog, int which) {
}
});
// 否定
builder.setNegativeButton(android.R.string.cancel, new AlertDialog.OnclickListener(){
public void onClick(DialogInterface dialog, int which) {
}
});
// 取消
builder.setOnCancelListener(new AlertDialog.OnCancelListener(){
public void onClick(DialogInterface dialog, int which) {
}
});
// 不允许取消
builder.setCancelable(false);
builder.create();
builder.show();
return true;
- Email正文webview加载方式
- webView 网页加载方式
- WebView加载文件方式
- webview加载网页有三种方式
- 3中webView加载方式
- WebView加载方的方式
- 修改WebView默认加载方式
- 用webView加载的方式拨打电话
- 加载webView的两种方式
- android加载bingmaps地图-------webview方式
- WebView控件的使用(加载HTML的字符串方式)
- Android在webview下加载本地html的方式
- android WebView加载H5去地址栏的两种方式
- 加载Webview
- 加载webView
- 加载webview
- 加载webView
- WebView加载
- Python 冒泡排序
- ubuntu连接vpn服务器(pptp)
- 【Android开发经验】设置不自动弹出软键盘的最简洁解决方案
- OpenGL学习之3D图形的刚体变换
- Rotate Image
- Email正文webview加载方式
- what is a device drive
- Android 获取控件高度宽度三种方法,防止0的出现
- 第196天
- AFNetworking实现程序重新启动时的断点续传
- java和C常见技术面试题2015(持续更新中。。。)
- PHPCMS 路由资料
- phonegap的安装
- 推荐使用links方法安装插件