1. 程式人生 > >解決Webview滑動黑屏外加顯示黑屏的問題

解決Webview滑動黑屏外加顯示黑屏的問題

本文自己總結而來,歡迎大家轉發

  • 最近在做專案時處理bug的時候,發現有的華為手機跟oppo手機運用webview的時候會出現問題,特將解決方法發上來與大家分享

一開始華為手機滑動黑屏的時候,就上網查,一般都是說法都是將改activity的硬體加速關掉,但是原先程式碼裡面已經關掉,但是還是顯示這樣,沒辦法,正好最近看了一個騰訊三方開源的X5瀏覽器核心,webview中的類的命名跟原生的命名都一樣,就是修改一下導的包就好:

所用的類

系統核心 SDK核心
android.webkit.WebView com.tencent.smtt.sdk.WebView
android.webkit.WebViewClient com.tencent.smtt.sdk.WebViewClient
android.webkit.WebSettings com.tencent.smtt.sdk.WebSettings
android.webkit.WebChromeClient com.tencent.smtt.sdk.WebChromeClient

在XML中的設定

<com.tencent.smtt.sdk.WebView

android:id="@+id/forum_context"

android:
layout_width="fill_parent" android:layout_height="fill_parent" android:paddingLeft="5dp" android:paddingRight="5dp" />

剩下的跟原先的程式碼設定就好,bug解除,滑動之後不顯示黑屏了。

後來oppo測試機一開始展示的時候就顯示黑屏

先將原先的WebView的一些設定先遮蔽掉,顯示就沒有問題,後續在配置中進行一一排除:

webView.setBackgroundColor(Color.TRANSPARENT); // WebView 背景透明效果

發現是這段程式碼的問題,將其遮蔽掉,顯示正常

總結

遇到黑屏問題先在配置檔案中設定activity:

android:hardwareAccelerated="false"

將硬體加速關閉再進行操作。
騰訊X5核心瀏覽器官網說載入速度比原生的快30% 個人用起來感覺還不錯,不過官方論壇裡面還有很多bug要解決,不過對於需求不大,只是展示一下頁面外加與js互動一下的話應該也足夠了