2014-11-07 66 views
4

我想在我的PhoneGap /科爾多瓦應用程序中渲染一些WebGL,但我沒有運氣。WebGL無法在PhoneGap Android工具箱KitKat

var canvas = document.createElement('canvas'); 
var gl = canvas.getContext("webgl") || canvas.getContext("experimental-webgl"); 
if (!gl) { 
    console.log('WebGL not supported'); 
} 

gl變量始終爲空。

我已經試過了萬普拉斯一間的Nexus 5這兩者都是Android的奇巧v4.4.4的Chrome 38

相同的代碼工作正常在iOS8上和桌面上。

該代碼適用於在這些設備上加載的普通網頁。那麼http://get.webgl.org/

我甚至嘗試過使用CCA,它使用crosswalk將Chrome綁定到應用程序。

我試過Google搜索錯誤我充斥着有問題的人從設備不支持它(iOS < v8和Android < v4.4)。

我在想這可能是我必須在構建鏈中啓用的東西。

預先感謝您。

格倫

回答

8

我曾與一些help想通了。

儘管我安裝了Chrome 38,但WebView實際上並未使用已安裝的Chrome版本,而是隨操作系統一起提供的另一個版本,並且不會自動更新。

該WebView實際上是Chrome 33其中doesn't support WebGL

當Android L發佈時,它將支持WebView中的WebGL,它也會自動更新。

關於CCA版本,它捆綁了支持WebGL的Chrome 37。它適用於沒有blacklisted GPUs的設備。如果您按照these instructions,它會告訴您可以忽略黑名單並在所有設備上運行,但結果可能不穩定。

+1

網頁瀏覽與設備上的瀏覽器無關,它們與SDK一起打包。 – 2014-11-07 05:06:09

+0

@DawsonLoudon是的,你說得對。我做了一個糟糕的假設。儘管Android的L'WebView可以從Play商店更新。 – Garrows 2014-11-07 05:32:35

+0

是的,我讀到了。他們開始將SDK的更多部分捆綁到播放服務中,以便更新它們。這是Google的一個偉大舉措 – 2014-11-07 14:44:17

1

如果您想在Android 4.0+上使用WebGL,Ludei(http://ludei.com)有一個名爲WebView +的項目,它允許您使用Android上最新的Chromium項目。缺點是15Mb被添加到你的最終APK。您可以使用CocoonJS啓動器應用程序進行測試:https://play.google.com/store/apps/details?id=com.ideateca.cocoonjslauncher&hl=es您可以在其中指向一個URL(甚至可以使用QRCode,因此您不必在移動設備上輸入整個URL),甚至可以上傳整個ZIP文件與您的項目一起測試它離線。