gpt4 book ai didi

javascript - Android native 浏览器复制 HTML5 Canvas (在 chrome 中很好)

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:23:52 24 4
gpt4 key购买 nike

这是一个奇怪的问题,我只在三星 Galaxy Tab 2 和 Galaxy S2 的原生浏览器上遇到过原生浏览器。

这也在其他安卓手机和平板电脑上进行了测试,例如 Nexus 7 和 Galaxy S4,但它们的 native 浏览器是 chrome,所以看起来不错。此问题也不存在于任何 IOS 浏览器、Windows 桌面浏览器或 Mac 桌面浏览器上。

这几乎就像网页在自身之上加载了两次一样!

因为有一个重复的 Canvas 元素,它会像主 Canvas 一样更新。

enter image description here enter image description here

这里看起来好像它只在横向模式下旋转时发生,但我相信在纵向模式下, Canvas 在顶部完美对齐。

更奇怪的是,您看到的菜单按钮是一个切换按钮,点击打开菜单,点击关闭菜单。在此设备上,当您点击它时,它会立即打开和关闭。静音按钮切换也会发生同样的情况。

我完全不知所措。

我已经完成了一些 javascript 调试,在各处抛出一些警告,创建对 Canvas 的引用等的初始化函数只调用一次。

我已经阅读并听说过硬件加速会导致问题,但我可能找到的解决方案仅与构建 native 应用有关!不是 HTML5 Canvas 网页。

任何对此的见解都将是很棒的!提前致谢。

--编辑

我还放入了这个测试 alert(document.getElementsByTagName('canvas').length); 以查看 DOM 中是否有 2 个 Canvas ,但它返回 1!

最佳答案

我遇到了同样的问题。在对我的 Canvas 进行更改后,我能够通过运行以下代码来解决此问题:

// If Samsung android browser is detected
if (window.navigator && window.navigator.userAgent.indexOf('534.30') > 0) {

// Tweak the canvas opacity, causing it to redraw
$('canvas').css('opacity', '0.99');

// Set the canvas opacity back to normal after 5ms
setTimeout(function() {
$('canvas').css('opacity', '1');
}, 5);

}

通过调整不透明度,这会强制 Canvas 重新绘制并删除重复的形状。这是一个愚蠢的修复,但它有效。希望这对某人有所帮助。

关于javascript - Android native 浏览器复制 HTML5 Canvas (在 chrome 中很好),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18271990/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com