在android應用中,有時要加載一個網頁,若是能配上一個進度條就更好了,而android 中提供了其很好的支持,javascript
其中webView的一系列用法,好比java
webView.getSettings().setJavaScriptEnabled(true); //設置能夠使用javascript
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); //設置滾動條風格
webView.setHorizontalScrollBarEnabled(false);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setBuiltInZoomControls(true); //設置能夠支持縮放
webView.setInitialScale(25); //爲25%,最小縮放等級 ,能夠在這裏根據需求來設置縮放比例.
webView.setHorizontalScrollbarOverlay(true);
下面是一個例子程序,先帖: android
主程序: web
public class WebPageLoader extends Activity
{
final Activity activity = this;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main);
WebView webView = (WebView) findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setSupportZoom(true);
//點擊連接在當前browser中響應,而不是新開Android系統browser中響應該連接
webView.setWebChromeClient(new WebChromeClient()
{
public void onProgressChanged(WebView view, int progress)
{
activity.setTitle("Loading...");
activity.setProgress(progress * 100);
if(progress == 100){
activity.setTitle(R.string.app_name);
}
}
);
webView.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
{ // Handle the error
}
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
});
webView.loadUrl("http://www.sohu.com");
}
}app
而進度條的使用是在new出一個setWebChromeClient後,能夠在內部類中寫 onProgressChanged事件 ide
在WebView的設計中,不是什麼事都要WebView類乾的,有些瑣事是分給其餘人的,這樣WebView專心幹好本身的解析、渲染工做就好了。WebViewClient 就是幫助WebView處理各類通知、請求事件的,具體來講包括: 網站
WebChromeClient是輔助WebView處理Javascript的對話框,網站圖標,網站title,加載進度等ui
判斷加載的頁面URL地址是否正確:
if(URLUtil.isNetworkUrl(url)==true) this