提问人:Rooster 提问时间:10/18/2023 更新时间:10/18/2023 访问量:34
如何从 Next.js 中的 iframe 启动 WebXR?
How do I start WebXR from an iframe within Next.js?
问:
我有一个 Next.js 应用程序
当我单击左下角的 AR 按钮(“在 AR betrachten 中”)时,它应该在 Android Chrome 上打开 WebXR。但它回退到 Android Scene Viewer。
iframe 源 https://polygoningenieur.dev/。 如果我直接在浏览器中转到 https://polygoningenieur.dev/,它可以工作,WebXR 正在打开。
沙盒是一个标准的next.js应用程序,next.config.js如下所示:
module.exports = {
async headers() {
return [
{
source: "/",
headers: [
{
key: "Permissions-Policy",
value: "xr-spatial-tracking=()"
}
]
}
];
}
};
index.tsx 是这样的:
import React from "react";
import { render } from "react-dom";
import "./style.css";
const App = () => (
<div>
<div id="ar-layout">
<iframe
src="https://polygoningenieur.dev"
id="ar-showcase"
title="AR-App Example"
width="800"
height="600"
allow="xr-spatial-tracking"
allowFullScreen
></iframe>
</div>
</div>
);
render(<App />, document.getElementById("root"));
所以我不确定我在这里错过了什么。AR 应用程序位于 https 域上,iframe 具有 allow=“xr-spatial-tracking”,并且我在 next.config.js 中将权限策略标头设置为允许 xr-spatial-tracking。 (Codesandbox 说 allow on iframe 是一个未知的道具,但在我的本地环境中没有对此的抱怨。
(附加信息:我在 Android 上使用 Chrome,AR-App 是用模型查看器构建的,并且是静态的,使用 html 和 JavaScript 。
但为什么它不起作用?谢谢!:)
答:
他们似乎正在使用模型查看器在 AR 中展示 3D 模型。 您也可以使用此包在nextjs应用程序中使用相同的内容
演示代码沙盒链接:https://codesandbox.io/s/google-model-viewer-nextjs-p4gge
演示故障链接:https://glitch.com/edit/#!/grave-verbose-angora?path=index.html%3A19%3A17
要在modelviewer中尝试3d模型,可以使用以下GLB文件:
评论