Android實作webView元件
程式碼:
public class
MainActivity extends Activity {
@Override
public void onBackPressed()
{
// TODO Auto-generated method
stub
// mwv.goBack(); //回上一頁
// super.onBackPressed(); //離開
if (mwv.canGoBack())
mwv.goBack();
else
System.exit(0);
}
private WebView mwv;
private ProgressDialog pd;
private Button mbtn;
private Button mbtn2;
@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mwv = (WebView) findViewById(R.id.webView1);
// 瀏覽網路需要權限
android.permission.INTERNET
// String url =
"http://www.tcfst.org.tw";
// mwv.loadUrl(url);
mwv.setWebViewClient(new myvebviewclient());
// 設定 web client
pd = new ProgressDialog(this);//
設定progress bar
mbtn = (Button) findViewById(R.id.button1);
mbtn.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View
v) {
// TODO Auto-generated
method stub
Log.e("but1",
"onClick");
pd.setMessage("Loading...");
pd.setCanceledOnTouchOutside(false);
// 設定 使用者無法 按到旁邊而關掉
pd.show();
String url = "http://tw.yahoo.com";
// String url =
"file:///android_asset/demo.html";
// //瀏覽使用設定的html檔案
mwv.loadUrl(url);
}
});
mbtn2 = (Button) findViewById(R.id.button2);
mbtn2.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View
v) {
// TODO Auto-generated
method stub
Log.e("but2",
"onClick");
pd.setMessage("Loading...");
pd.setCanceledOnTouchOutside(false);
// 設定 使用者無法 按到旁邊而關掉
pd.show();
// String url =
"http://tw.yahoo.com";
String url = "file:///android_asset/demo.html";
// 瀏覽使用設定的html檔案
mwv.loadUrl(url);
}
});
}
private class
myvebviewclient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView
view, String url) {
// TODO Auto-generated
method stub
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView
view, String url) {
// TODO Auto-generated
method stub
// super.onPageFinished(view, url);
if (pd.isShowing())
pd.dismiss();
}
}
}
說明:
1. 需開啟網路使用權限; <uses-permission android:name="android.permission.INTERNET"/>
2.
需建立一個繼承WebViewClient的類別,使用該類別來當使用者存取網址及webView的中介
3.
點選Button1及Button2會各自開啟兩個不同的網頁,並將其呈現於webView上
4.
若不使用WebViewClient則系統會詢問使用者,要使用目前系統上的哪一個瀏覽器來開啟網頁

沒有留言:
張貼留言