2017-09-13 749 views
2

我有一個使用Crosswalk的混合Android應用程序。幾個月前,我改用了Crosswalk,這是一個巨大的生產力提升。我花了很多時間在不同的Android操作系統版本上進行測試,並且在不完整的HTML5/CSS3/ES6實現中遇到的問題少得多 - 如果我理解正確,因爲Crosswalk基於Chromium,而早期版本的Android則不適用。Android v 5.0+ webview HTML5,CSS3和ES6兼容

但是,人行橫道項目現在已被放棄。我的理解是,Android中原生Webview的post v 5.0實現非常適合Crosswalk的過時。

我現在正在考慮下降Crosswalk - 基於我的目標市場(西歐)Android v 5.0市場份額在單位數字並且下降很快的觀察。

在我冒險之前,我想我應該問這裏。 Android v 5.0+ WebView是否爲HTML5,ES6和CSS3提供了一個真正平坦的Chrome級API?或者,我仍然可能遇到由各種設備供應商對操作系統進行「調整」而導致性能下降的未實現功能問題?

舉幾個具體問題

  • 我能想到的全套CSS3僞選擇的被支持
  • 我可以假設,我可以放心地不使用-webkit樣式的供應商合作前綴
  • 威爾我可以寫JS代碼,使用Object.keys和其他更新的角色到JS穩定

我一直無法找到一個公司根據版本對全套Webview功能進行全面討論。我非常感謝這方面的任何反饋。


因爲我張貼了這個問題,我已經有滴人行橫道試驗和測試,我的摩托E3Power手機上運行的Android 6.所有意圖和目的,預期該應用程序仍然工作只是結果。但是,這遠遠不是一個嚴格的測試。我正在對這個問題進行獎勵,希望它能產生一些明確的答案。


現在已經測試了我的非Crosswalk構建在兩個設備上,我遇到了一個直接的問題。我做的一件事是修改cssText。例如

document.getElementById('id').style.cssText = 
";transform:rotate(45deg) translate(calc(1024px - 1.35em)) rotate(-45deg);" 

這在我的Android 6.0摩托完美的作品,並提供預期的結果:

  • #id旋轉45度
  • 滑出沿着它,旋轉,X軸
  • 終於旋轉返回-45度

令人驚訝的是在HTC Hero上運行droid 7.0這不起作用。雖然它沒有任何意義,我甚至在添加-webkit-前綴後嘗試了。在這兩款設備上,我都將Webview升級到Play Store上的最新版本。

+0

退房caniuse.com –

+0

的Android 5+的WebView是基於鉻,並通過Play商店更新。您可以檢查安裝在您自己的設備上的'Android System WebView'軟件包的版本,並查看其版本對應於最近發佈的鉻版本。 ///由於您沒有將其捆綁到應用程序中(例如Crosswalk),因此不同的設備有不同的版本,您可能會遇到HTML應用程序中的兼容性問題。 ///您可以隨時在運行時檢查安裝的版本並提示用戶更新其WebView實現。 –

+0

爲了完整:除了KitKat之外,Android WebView根本不基於Chrome。 KitKat WebView基於Chrome 33,無法更新。看到這裏:https://developer.chrome.com/multidevice/webview/overview –

回答

0

我想你可以嘗試:

if (Build.VERSION.SDK_INT >= 19) { 
    webView.setLayerType(View.LAYER_TYPE_HARDWARE, null); 
}  
else { 
    webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 
} 

安卓19具有鉻引擎的WebView。我想它在硬件加速方面效果更好。硬件加速也有訣竅。您可以在應用程序的不同級別使用它。

應用水平

<application android:hardwareAccelerated="true" ...> 

活動水平

<application android:hardwareAccelerated="true"> 
    <activity ... /> 
    <activity android:hardwareAccelerated="false" /> 
</application> 
+1

我其實沒有得到我等待的權威答案。但是,我開始懷疑自己某些手機上缺少的動畫是一個硬件加速問題,所以到目前爲止,您已經提供了我已經決定接受的最有用的答案。 – DroidOS

+0

我也遭受與本機應用程序相同的情況。我嘗試了很多措施,最後這個措施是我所知道的最好的。 Android上的WebView在功能和速度方面都非常失敗。我還沒有發現任何人可以在android中更好地定製。如果你知道請爲我介紹!感謝賞金。 –

1

網頁視圖現在它不與操作系統集成的,但它可以從Play商店更新一個獨立的應用程序,是的,它支持CSS3和所有, 它不是鉻,但是共享相同的代碼與鉻

渲染

不,Chrome for Android與WebView是分開的。它們都基於相同的代碼,包括常見的JavaScript引擎和渲染引擎。

https://developer.chrome.com/multidevice/webview/overview

如果你大部分的用戶設備的說是+5你應該罰款。

  1. WebGL的
  2. 的WebRTC
  3. WebAudio
  4. 表單驗證

下面是適用的WebView https://developer.chrome.com/multidevice/webview/overview#does_the_new_webview_have_feature_parity_with_chrome_for_android_

也爲Android> 7.0瀏覽器本身是web視圖的功能。

+0

我不覺得你的答案充分我的問題。您上面提到的鏈接是衆所周知的,並且以非常通用的術語談論+5 webview支持的網絡技術。我提到了一些非常具體的觀點,比如支持CSS3僞選擇器,ES6特性等。自從我放棄了Crosswalk之後,我遇到了一些非常奇怪的問題,我現在在我的問題中提到了這些問題。 – DroidOS