使用webview遇到的問題

來源:互聯網
上載者:User

1:處理webview返回鍵

     如果用webview點連結看了很多頁以後,如果不做任何處理,點擊系統“Back”鍵,整個瀏覽器會調用finish()而結束自身,
      如果希望瀏覽的網頁回退而不是退出瀏覽器,需要在當前Activity中處理並消費掉該Back事件,覆蓋Activity類的onKeyDown(int keyCoder,KeyEvent event)方法

public boolean onKeyDown(int keyCode, KeyEvent event) {

        if (event.getAction() == KeyEvent.ACTION_DOWN) {
            switch (keyCode) {
            case KeyEvent.KEYCODE_BACK:
                if (webView.canGoBack() == true) {
                    webView.goBack();
                } else {
                    finish();
                }
                return true;
            }

        }
        return super.onKeyDown(keyCode, event);
    }

注意使用這個方法時 不要重寫

@Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            // TODO Auto-generated method stub
            // view.loadUrl(url);
            // return true;
            return super.shouldOverrideUrlLoading(view, url);
        }

否則返回鍵不能返回到前一個Activity頁面

因為我重寫了這個方法 所以導致按下系統返回鍵總是不能返回到前一個Activity頁面

感謝

http://www.eoeandroid.com/thread-274355-1-1.html

2:在網頁載入的時候給使用者一個提示

class webViewClient extends WebViewClient {

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);

            if (!pd.isShowing()) {
                pd.show();// 顯示進度對話方塊
            }

        }

        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);

            if (pd.isShowing()) {
                pd.hide();
            }

        }
    }

注意:如果開啟的網頁有使用者登入的功能 則一定要加判斷pd.isShowing(),原因是onPageStarted和onPageFinished
會載入兩次 所以導致pd會顯示兩次

感謝:http://bbs.csdn.net/topics/390442564

3:用webview載入網頁時,點擊網頁中的視頻進行播放,按返回鍵回到上一個頁面,視頻聲音還在

處理方法:設定webview.loadUrl("");

解釋:

我們在退出一個activity時,這個activity還在堆棧裡沒有銷毀
所以退出前,讓webview載入新的url,那麼它就不會播放原來的內容了




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.