将Chrome更新为76 +

时间:2019-08-22 09:56:39

标签: android cordova canvas webview hardware-acceleration

我的Web视图在画布上具有绘制功能,该功能工作正常。但是在Chrome升级后,它停止在画布中绘图。我有一个解决方法,通过将硬件加速设置为true可以正常工作,但是问题是我的应用程序的内存消耗迅速增加。这个问题有解决方案吗?

我正在将Cordova用于跨平台。

1 个答案:

答案 0 :(得分:0)

嗯,我对科尔多瓦一无所知,但我认为这也可以为您提供帮助。我发现解决Android webview中HTML5画布问题的关键是在 AndroidManifest.xml 中。我该怎么办?我保留使用混合(自定义)Webview的策略,因为当我在Xamarin Forms中为iOS和Android开发时,在两个平台上都需要相同的解决方案。在Android上,我做到了:

// Java (or similar [laughs])
// Enable hardware acceleration using code (>= level 19)
if (Build.VERSION.SDK_INT >= 19) {
    yourWebviewObj.setLayerType(View.LAYER_TYPE_HARDWARE, null);
} else {
    yourWebviewObj.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}

yourSettingsObj.setRenderPriority(WebSettings.RenderPriority.HIGH);
yourSettingsObj.setCacheMode(WebSettings.LOAD_NO_CACHE);
// Xamarin for Android
// Enable hardware acceleration using code (>= level 19)
if (Build.VERSION.SdkInt >= 19)
{
    yourWebviewObj.SetLayerType (LayerType.Hardware, null);
}
else
{
    yourWebviewObj.SetLayerType (LayerType.Software, null);
}

yourWebviewObj.Settings.SetRenderPriority(WebSettings.RenderPriority.High);
yourWebviewObj.Settings.CacheMode = CacheModes.NoCache;

最后,在 AndroidManifest.xml 中找到android:handwareAccelerated="false",您可以将值从false更改为true。此技巧(另外)适用于Java Universe和Xamarin。

Android WebView with layer_type_software not showing HTML5 canvas content有另一个遇到相同问题的人,我也发布了相同的解决方案。抱歉,如果我的帮助还不够,但是今天我使用Xamarin开发应用程序。无论如何,我相信走这条路会帮助您。