WKWebView:如何显示一个大的HTML5画布?

huangapple go评论42阅读模式
英文:

WKWebView: how to display a big HTML5 canvas?

问题

屏幕分辨率是2360x1640的iPad上,视口尺寸为1180x820。

如果我设置一个2360x1640的画布,那么在我的WKWebView上只会显示四分之一的画面。

而我必须使用2360x1640的画布。

所以我无法在我的iPad上的WKWebView中显示它。

能否请你帮助我?

问候,
Alex

英文:

Viewport is 1180x820 on iPad, even if screen resolution is 2360x1640.

If I set up a canvas of 2360x1640, only a quarter is displayed on my WKWebView.
And I must have a 2360x1640 canvas.

So I'm not able to display it in my WKWebView on my iPad.

Could you please help me?

Regards,
Alex

答案1

得分: 0

我认为您应该能够使用devicePixelRatio来缩放您的画布。

var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');

canvas.width = 2360 * window.devicePixelRatio;
canvas.height = 1640 * window.devicePixelRatio;
canvas.style.width = '2360px';
canvas.style.height = '1640px';

ctx.scale(window.devicePixelRatio, window.devicePixelRatio);
ctx.fillRect(0, 0, 100, 100);
ctx.fillRect(2360, 0, 100, 100);
ctx.fillRect(0, 1640, 100, 100);
ctx.fillRect(2360, 1640, 100, 100);

我没有访问iPad,但您可以尝试看看这是否有效。

英文:

I think you should be able to use devicePixelRatio to scale your canvas.

var canvas = document.getElementById('canvas')
var ctx = canvas.getContext('2d')

canvas.width = 2360 * window.devicePixelRatio
canvas.height = 1640 * window.devicePixelRatio
canvas.style.width = '2360px'
canvas.style.height = '1640px'

ctx.scale(window.devicePixelRatio, window.devicePixelRatio)
ctx.fillRect(0, 0, 100, 100)
ctx.fillRect(2360, 0, 100, 100)
ctx.fillRect(0, 1640, 100, 100)
ctx.fillRect(2360, 1640, 100, 100)

I don't have access to an iPad, but see if this works.

huangapple
  • 本文由 发表于 2023年2月8日 22:31:51
  • 转载请务必保留本文链接:https://go.coder-hub.com/75387273.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定