網誌清單

2014年1月6日 星期一

[Android] WebView、setWebViewClient() 基本使用

Android 提供一個顯示網頁的元件WebView, 搭配WebSettings、setWebViewClient() 等方式顯示網頁,以下基本介紹WebView使用方法。



Java

package com.bloggerads;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends Activity {

@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView wv =(WebView)findViewById(R.id.wv);
WebSettings set = wv.getSettings();     //取得網頁相關設定
set.setBuiltInZoomControls(true);       //是否支持手指縮放
set.setDisplayZoomControls(true);      //是否顯示縮放按鈕(內置縮放+/-按鈕)
set.setJavaScriptEnabled(true);           //是否支持網頁裡的JavaScript語法
wv.loadUrl("http://july200914.blogspot.tw/"); //載入網頁
}

}

預設的網頁會彈出選擇瀏覽器,如果想使網頁顯示在自己的WebView上,則加上:
setWebViewClient() 裡面提供的 shouldOverrideUrlLoading ,如下:

package com.bloggerads;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends Activity {

@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView wv =(WebView)findViewById(R.id.wv);
WebSettings set = wv.getSettings();     //取得網頁相關設定
set.setBuiltInZoomControls(true);       //是否支持手指縮放
set.setDisplayZoomControls(true);      //是否顯示縮放按鈕(內置縮放+/-按鈕)
set.setJavaScriptEnabled(true);           //是否支持網頁裡的JavaScript語法
wv.loadUrl("http://july200914.blogspot.tw/"); //載入網頁

wv.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;

}

});

}

}

另外在AndroidManifest.xml需要加入網路的權限
 <uses-permission android:name="android.permission.INTERNET" /> 


沒有留言:

張貼留言