三星互联网视口问题上的 A-Frame + AR.js

问题描述

我有一个简单的页面,它使用 A-Frame 和 AR.js 在找到标记时加载视频,以及一些简单的 UI 来指导用户。这适用于大多数浏览器,但不适用于三星 Internet(Adnroid 浏览器)。

问题在于 UI 未正确放置,并且与其他浏览器中的大小不同。经过远程调试,我发现在三星浏览器上document.documentElement.clientWidth / Heightwindow.innerWidth / Height差别很大,而在其他浏览器上是相同的值。以我的 OnePlus 6T 为例,我得到:

铬:

  • window.innerWidth412
  • window.innerHeight757
  • document.documentElement.clientWidth412
  • document.documentElement.clientHeight757

三星:

  • window.innerWidth1648
  • window.innerHeight2869
  • document.documentElement.clientWidth412
  • document.documentElement.clientHeight717

如您所见,难怪我的 UI 图像看起来很小,因为三星似乎认为窗口实际上是巨大的,但三星似乎只有在加载 A-Frame 场景后才会“扩展”这些尺寸,因为直到它我有一些不同的 UI 和加载动画,它正确放置元素并像在其他浏览器中一样以正确的尺寸显示它们。

如果我在 A-Frame 仍在加载时查询例如 window.innerHeight,我得到了正确的 717,但是一旦加载我再次查询它,我得到 2869 .

A-Frame 或 AR.js 似乎对 <body> 做一些事情,因为一旦它被加载,主体看起来像这样:

<body style="height: 2869px; width: 3825.33px; margin-left: -1088.5px; margin-top: 0px;">

正如您所看到的,机身上新的强制尺寸是三星认为的视口大小,在 Chrome 中也会发生这种情况,尽管这些值与视口大小相同:

<body style="height: 757px; width: 1009.33px; margin-left: -298.5px; margin-top: 0px;">

知道是什么导致了这个问题,我该如何解决

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)