Android-用WebView开发简单的浏览器
Android 提供了 WebView 组件,WebView 本身就是一个浏览器实现。
例子中主要用到了 WebView 的以下方法:
- void loadUrl(String url) 加载指定 url 对应的网页
- void goBack() 后退
- void goForward() 前进
- boolean canGoBack() 根据
历史记录
判断是否可以回退 - boolean canGoForward() 根据
历史记录
判断是否可以前进 - WebSettings getSettings() 获得对 WebView 进行控制的 WebSettings 对象
(调用其setJavaScriptEnabled
方法使WebView
支持JavaScript
) - void setWebViewClient(WebViewClient client) WebViewClient 负责处理
WebView 各种通知,请求,比如页面开始加载及加载完成、资源加载中、url已打开等 - void setWebChromeClient(WebChromeClient client) WebChromeClient主要辅助WebView处理Javascript的对话框、网站图标、网站title、加载进度等
浏览器功能概述:
- 第一次打开应用时默认会把
百度
设置为首页,可通过底部主页
按钮跳转到主页,或通过长按弹出对话框修改主页 主页
的 URL 地址使用SharedPreference
保存- 底部四个
ImageButton
从做往右依次为主页
刷新
回退
前进
- 顶部的
ActionBar
用void setCustomView(View)
添加了一个自定义的用于输入网址
的输入框和一个转到
按钮,转到
按钮默认是不可见且不可用的,当点击了用于输入网址
的EditText
就会显示并可用。 - 用于显示网页加载进度的
ProgressBar
截图
代码部分
- 每次打开一个网页时会调用该方法,在这里控制
ActionBar
内的Edittext
显示加载中...
mWebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
mShowTitle.setText("加载中...");
}
...
}
- 覆写
shouldOverrideUrlLoading
并返回tr