標籤:android class blog code java http
1、WebView 顯示進度條 在onCreate事件裡寫:
[java] view plaincopy
- WebView myWebView = (WebView) findViewById(R.id.webView1);
- final Activity activity = this;
- myWebView.setWebChromeClient(new WebChromeClient() {
- public void onProgressChanged(WebView view, int progress) {
- activity.setTitle("正在努力為您載入....");
- activity.setProgress(progress * 100);
- if(progress == 100)
- activity.setTitle("已完成");//或者設定為原有的Activity標題
- }
- });
2、網頁自適應webView寬度 在onCreate事件裡寫:
[java] view plaincopy
- WebView myWebView = (WebView) findViewById(R.id.webView1);
- myWebView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
3、webView支援網頁JavaScript語言 在onCreate事件裡寫:
[java] view plaincopy
- WebView myWebView = (WebView) findViewById(R.id.webView1);
- myWebView.getSettings().setJavaScriptEnabled(true);
4、網頁裡面超連結在webview裡載入而不是在手機預設瀏覽器開啟 在onCreate事件裡寫:
[java] view plaincopy
- WebView myWebView = (WebView) findViewById(R.id.webView1);
[java] view plaincopy
- myWebView.setWebViewClient(new WebViewClient(){
- public boolean shouldOverrideUrlLoading(WebView view, String url) {
- view.loadUrl(url);
- return true;
- }
- });
[java] view plaincopy
- myWebView.loadUrl("http://www.baidu.com"));//預設載入url只能放在setWebViewClient後面 否則網頁裡面超連結還是在手機預設瀏覽器開啟而不是在WebView裡載入
5、按手機返回按鈕後退網頁而不是開啟WebView程式之前的介面:
[java] view plaincopy
- public boolean onKeyDown(int keyCode, KeyEvent event)
- { // Check if the key event was the BACK key and if there‘s history
- WebView myWebView = (WebView) findViewById(R.id.webView1);
- if ((keyCode == KeyEvent.KEYCODE_BACK) && myWebView.canGoBack())
- {
- myWebView.goBack();
- return true;
- } // If it wasn‘t the BACK key or there‘s no web page history, bubble up to the default // system behavior (probably exit the activity)
- return super.onKeyDown(keyCode, event);
- }
6、網頁Js調用Android程式:
建立一類JavaScriptInterface
[java] view plaincopy
- package com.example.androidhouse;
- import android.content.Context;
- import android.widget.Toast;
- public class JavaScriptInterface {
- Context mContext;
- /** Instantiate the interface and set the context */
- JavaScriptInterface(Context c) { mContext = c; }
- /** Show a toast from the web page */
- public void showToast(String toast)
- {
- Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
- }
- }
在onCreate事件裡寫:
[java] view plaincopy
- WebView myWebView = (WebView) findViewById(R.id.webView1);
[java] view plaincopy
- myWebView.addJavascriptInterface(new JavaScriptInterface(this),"Android");
網頁js代碼裡寫:
[javascript] view plaincopy
- window.Andorid.showToast("我調用的Android程式");
切記:在Andorid2.2 和Android2.3裡面 webview的js調用會引起系統崩潰出現vm aborting錯誤 這是這兩個版本的BUG 解決起來很麻煩 到現在為止,我仍未找到解決的辦法。