通過Intent調用系統瀏覽器
Uri uri = Uri.parse(url); //url為你要鏈接的地址
Intent intent = new Intent(Intent.ACTION_VIEW, url);
startActivity(intent);
將WebView加入你的應用
要在你的應用中加入WebView,只需要在你的活動布局中加入<WebView>元素即可
<WebView></WebView>
要在WebView加載頁面,使用loadUrl
web資源:webView.loadUrl("http://www.baidu.com");
本地文件用:webView.loadUrl( "file:///android_asset/XX.html " );
本地文件存放在:assets文件中
//使頁面獲得焦點
webView.requestFocus();
獲取網絡使用權限
在它有效工作之前,你要保證你的應用能訪問網絡。要訪問網絡,需要在你的配置
使用WebView加載頁面
處理頁面導航
當用戶點擊一個WebView中的頁面鏈接時,通常由默認的瀏覽器打開並加載目標URL。<br>
那么如果想在WebView中打開鏈接,則需呀在WebView中覆蓋這一行為。<br>
(代碼:webView.setWebViewClient(new WebViewClient());)
在WebView中使用Javascript
如果想在加載webView的web頁面中使用JavaScript,則需要在webView中啟用JavaScript。
啟用JavaScript:
首先,通過在WebView中帶有的WebSettings來啟用;
然后,用getSettings獲取WebSettings的值,
最后用setJavaScriptEnable來啟用JavaScript
WebView webvView=(WebView)findViewById(R.id.webView);
WebSettings webSettings =webView.getSettings();
webSettings.setJavaScriptEnabled(true);
后退與前進
當webView覆蓋了URl加載,它會自動生成歷史訪問記錄,可以通過goBack()或goForward()向前或向后訪問已訪問的站點。
代碼:
public boolean onKeyDown(int keyCode,KeyEvent event){
if((keyCode= =KeyEvent.KEYCODE_BACK)&&myWebView.canGoBack(){
webView.goBack();
return true;
}
return super.onKeyDown(keyCode,even);
}
判斷頁面加載過程
有的頁面可能加載緩慢,所以要去判斷頁面的加載過程,制作進度條來給用戶好的體驗。
webView.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view, int newProgress) {
// newProgress時0-100的整數,表示頁面加載的進度。當newProgress=100時代表頁面加載完成
if(newProgress==100)
{
//網頁加載完畢,關閉progressDialog
CloseDialog();
}
else
{
//頁面正在加載,打開progressDialog
OpenDialog(newProgress);
}
super.onProgressChanged(view, newProgress);
}
private void OpenDialog(int newProgress) {
// TODO Auto-generated method stub
if(dialog==null)
{
dialog=new ProgressDialog(MainActivity.this );
dialog.setTitle("正在打開網頁");//設置Dialog的標題
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//設置進度條的樣式
dialog.setProgress(newProgress);//顯示newProgress的進度
dialog.show();//在頁面上顯示進度
}
else
{
dialog.setProgress(newProgress);
}
}
WebView緩存的運用
WebView緩存運用(當加載頁面是將頁面內容儲存在本地,下一次瀏覽此頁面是從本地獲取資源)
優先使用緩存:webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
不使用緩存:
webView。getSettings().setCacheMode(WebSettings.LOAD_CACHE_NO_NETWORK);
在它有效工作之前,你要保證你的應用能訪問網絡。要訪問網絡,需要在你的配置文件中獲取INTERNET權限。
<mainfest...>
<uses-permission android:name="android.permission.INTERNET"> /
>
...
</manifest>