WebViewの初使用

4450 ワード

Android携帯電話に高性能Webkitカーネルブラウザを内蔵し、SDKでWebViewというコンポーネントにカプセル化
ActivityのレイアウトファイルにWebViewコンポーネントを追加します.
    <WebView
        android:id="@+id/wv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >

    </WebView>
activityのclassでprivateのWebView変数を定義します.
      private WebView webview=null;
ActivityのonCreateイベントで、コードを追加します.
        webview=(WebView)findViewById(R.id.wv);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.loadUrl("http://www.baidu.com");
        webview.setWebViewClient(new MyWebViewClient());

上書き方法
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {

        if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
            webview.goBack(); //goBack() WebView 
            return true;
        }
       return super.onKeyDown(keyCode, event);  // 。 activity 。
    }
    private class MyWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }

WebViewは開発の過程でいくつかの点に注意しなければならない:1.AndroidManifest.xmlではライセンス「android.permission.INTERNET」を使用する必要があります.そうしないと、Web page not availableエラーが発生します.2.アクセスしたページにJavascriptがある場合は、webviewがJavascriptをサポートするように設定する必要があります.WebSettings webSetting=webview.getSettings(); webSetting.setJavaScriptEnabled(true); 3.ページにリンクがある場合は、Androidを新しく開いたシステムではなく、リンクをクリックして現在のブラウザで応答し続ける場合は、WebviewのWebViewClientオブジェクトを上書きする必要があります.mWebView.setWebViewClient(new WebViewClient(){         public boolean shouldOverrideUrlLoading(WebView view, String url){                 view.loadUrl(url);                 return true;       }); 4.何の処理もせずにWebページを閲覧し、システムの「Back」キーをクリックすると、Browser全体がfinish()を呼び出して自分自身を終了し、閲覧したいネットがあれば?ブラウザではなくページをロールバックし、現在のActivityでBackイベントを処理して消費する必要があります.public boolean onKeyDown(int keyCode,KeyEvent event){       if((keyCode==KeyEvent.KEYCODE_BACK)&&mWebView.canGoBack()){                 mWebView.goBack();                 return true;         }         return super.onKeyDown(keyCode,event);         } 5.WebViewでユーザーがユーザー名、パスワード、またはその他を手動で入力する必要がある場合は、Webviewがジェスチャーフォーカスの取得をサポートするように設定する必要があります.webview.requestFocusFromTouch(); 6.WebViewロードインタフェースは主に3つの方法を呼び出す:LoadUrl、LoadData、LoadData WithBaseURL.1、LoadUrlは直接ホームページ、画像をロードして表示する.(ローカルまたはネットワーク上のページ、画像、gif)2、LoadDataは文字と画像の内容を表示しますか?(シミュレータ1.5、1.6)3、LoadDataWithBase表示文字と画像の内容(複数のシミュレータバージョンをサポート)WebSettingsの一般的な方法setJavaScriptEnabled(true);js setPluginsEnabled(true)をサポートする.プラグインsetuUseWideViewPort(false)をサポートする.画像をwebviewに適したサイズに調整するsetSupportZoom(true);スケーリングsetLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN)をサポートする.新しいレイアウトからサポートコンテンツマルチウィンドウsetCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);WebviewでsetAllowFileAccess(true)をキャッシュします.ファイルsetNeedInitialFocus(true)にアクセスできるように設定します.WebviewがrequestFocusを呼び出すと、WebviewにノードsetJavaScriptCanOpenWindowsAutomatically(true)を設定します.JSで新しいウィンドウを開くことをサポートします.画像を自動的にロードするWebViewClientをサポートする方法doUpdateVisited History(WebView,String url,boolean isReload)更新履歴onFormResubmission(WebView,Message dontResend,Message resend)アプリケーションは、ページリソースをロードするときに、WebデータonLoadResource(WebView,String url)を再要求します.画像などのリソースのロードごとにonPageStarted(WebView、String url、Bitmap favicon)が呼び出されます.このイベントは、ページ呼び出しのロードを開始します.通常、loadingのページを設定して、ネットワーク応答を待っていることをユーザーに伝えることができます.onPageFinished(WebView,String url)は、ページロードの終了時に呼び出されます.同様に、ページの読み込みが完了したことを知っています.loadingバーを閉じて、プログラムの動作を切り替えることができます.onReceivedError(WebView,int errorCode,String description,String failingUrl)レポートエラー情報onReceivedHttpAuthRequest(WebView,HttpAuthHandler handler,String host,String realm)取得戻り情報許可要求onReceivedSslError(WebView,SslErrorHandler handler,SslError)このメソッドを書き換えると、httpsリクエストをwebviewで処理できます.onScale Changed(WebView,float oldScale,float newScale)WebViewが変更された場合にonUnhandledKeyEvent(WebView,KeyEvent event)キーイベントがロードされていない場合にshouldOverrideKeyEvent(WebView,KeyEvent event)を呼び出すこのメソッドを書き換えてこそ、ブラウザでのキーイベントを処理することができる.shouldOverrideUrlLoading(WebView view,String url)クリックリクエストはリンクが呼び出されるので、この方法を書き直してtrueに戻ると、ページ内のリンクをクリックするか、現在のwebviewでジャンプするか、ブラウザの方にジャンプしないことを示します.この関数は、特定のURLを読み取るなど、多くの操作を行うことができます.そこで、アドレスを開かずに、この操作をキャンセルして、事前に定義された他の操作を行うことができます.これはプログラムにとって非常に必要です.