1. 程式人生 > >Android WebView 獲取頁面 Title 的正確姿勢

Android WebView 獲取頁面 Title 的正確姿勢

現在 Android 開發中用到 WebView 的地方越來越多,開發中經常會遇到 WebView 的坑,這裡先轉載二篇很好的文章,WebView 開發時如果遇到了問題可以先去這二篇文章裡面看看。

閒話扯完,下面進入正題。
在 APP 中,根據 H5 頁面的 Title 來動態顯示我們 Toolbar 上的文字,這是一個很正常的需求。接到需求後,直接開擼。

姿勢一:

webView.setWebChromeClient(new WebChromeClient() {
            @Override
            public void onReceivedTitle
(WebView view, String title) { super.onReceivedTitle(view, title); if (title != null) { titleView.setCenterText(title); } } });

簡單測試了下,發現 titleView 內容是根據頁面動態變化了,Nice!
然額,事情這麼簡單的話也就沒必要寫這篇部落格了,上面的程式碼在我自己的 7.1 版本的系統上是沒有問題的,但是在用低版本手機測試的時候就發現有問題了。

在有些低版本的手機上,首次載入頁面的時候是正確獲取到了 title,但是當 goback 返回之後發現 title 並沒有自動的變回去,還是上一個頁面的 title。這可如何是好,在網上找了找,找到了一個解決方案,試了下,發現可行,遂記錄下來。

姿勢二:

webView.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                String title = view.getTitle();
                if
(!TextUtils.isEmpty(title)) { titleView.setCenterText(title); } } });

用上面的方法,在 goback 後都能夠正確的拿到 title,所以獲取 H5 頁面 title 的正確姿勢應該是姿勢二。