<pre name="code" class="java"><pre name="code" class="java">/*
* 第一種
* //URL爲你所鏈接的地址
* Uri uri = Uri.parse(url);
* Intent intent = new Intent(Intent.ACTION_VIEW,uri);
* startActivity(intent);
*/
/*
* 第二種
* (1)WebView加入你的應用
* (2)使用WebView加載頁面
* (3)獲取網絡訪問權限
* (4)在WebView中使用Javacsript
* (5)處理頁面導航
* (6)後臺與前進
* (7)判斷頁面加載過程
* (8)WebView緩存的運用
*/
package com.example.webview;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends Activity {
private String url="http://baidu.com";
private WebView webView;
private ProgressDialog dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
private void init() {
// TODO Auto-generated method stub
webView = (WebView) findViewById(R.id.webView);
//獲取網絡訪問權限AndroidManifest.xml
/*<uses-sdk
* android:minSdkVersion="14"
* android:targetSdkVersion="19" />
* <uses-permission android:name="android.permission.INTERNET"/>
*/
//打開本地資源
//webView.loadUrl("file:///android_asset/login.html");
//打開web資源
webView.loadUrl(url);
//覆蓋WebView默認通過第三方或者系統瀏覽器打開網頁的行爲
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
//返回值是true的時候控制頁面在WebView中去打開,如果是false在調用系統瀏覽器或第三方瀏覽器打開
view.loadUrl(url);
return true;
}
// WebViewClient幫助WebView處理頁面控制
});
//啓用支持javascript
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
//WebView加載頁面優先使用緩存加載
settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
webView.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view, int newProgress) {
// TODO Auto-generated method stub
//newProgress 1-100之間的整數
if(newProgress == 100)
{
//頁面加載完畢,關閉progressDialog
closeDialog(newProgress);
if(dialog != null && dialog.isShowing())
{
dialog.dismiss();
dialog = null;
}
}
else
{
//頁面正在加載,打開progressDialog
openDialog(newProgress);
if(dialog == null)
{
//顯示進度調
dialog = new ProgressDialog(MainActivity.this);
dialog.setTitle("正在加載");
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
dialog.setProgress(newProgress);
dialog.show();
}
else
{
//設置進度調的進度
dialog.setProgress(newProgress);
}
}
super.onProgressChanged(view, newProgress);
}
private void closeDialog(int newProgress) {
// TODO Auto-generated method stub
}
private void openDialog(int newProgress) {
// TODO Auto-generated method stub
}
});
}
//改寫物理按鍵--返回邏輯
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if(keyCode == KeyEvent.KEYCODE_BACK)
{
if(webView.canGoBack())
{
//返回上一個頁面
webView.goBack();
return true;
}
else
{
//退出程序
System.exit(0);
}
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}