1

我正在尝试从 Flutter 中的 web 视图打开以下脚本:

<model-viewer src="https://dashboard.impiattalo.com/storage/app/public/259/bistecca.gltf" alt="A 3D model of an astronaut" auto-rotate camera-controls ar ar-modes="web-xr scene-viewer quick-look fallback"  ar-scale="auto"></model-viewer>

当我尝试从 Chrome 打开 ar 时,它工作得很好,在颤动的 web 视图中它不起作用,它给了我这个错误。

错误颤动

这是我使用的代码:

                    child: WebView(
                            initialUrl:
                                'https://dashboard.impiattalo.com/3DViewer?url=${_con.food?.fbx_model?.url}',
                            javascriptMode: JavascriptMode.unrestricted,
                            gestureRecognizers: <
                                Factory<OneSequenceGestureRecognizer>>{
                              Factory<VerticalDragGestureRecognizer>(
                                () => VerticalDragGestureRecognizer()
                                  ..onUpdate = (_) {},
                              )
                            },
                          ),

这是 pubspec :

  webview_flutter: ^0.3.20+2

你有什么建议吗?感谢您的建议

4

1 回答 1

0

您遇到的错误与已知问题google/model-viewer#743有关:如果没有解决方法,就无法从 Android WebView 启动 Google 的 Scene Viewer。

要使用 Flutter 进行这项工作,您只需使用 Flutter 的Model Viewer包,它嵌入了 Google 的<model-viewer>Web 组件并包含必要的解决方法(请参阅drydart/model_viewer.dart#4):

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text("Model Viewer")),
        body: ModelViewer(
          backgroundColor: Color.fromARGB(0xFF, 0xEE, 0xEE, 0xEE),
          src: 'https://dashboard.impiattalo.com/storage/app/public/259/bistecca.gltf',
          alt: "Bistecca",
          ar: true,
          autoRotate: true,
          cameraControls: true,
        ),
      ),
    );
  }
}

请注意,我实际上无法使用您的模型 URL 尝试此操作,因为主机名可能是非公开的,但上面的代码确实适用于其他模型。

$ host dashboard.impiattalo.com
Host dashboard.impiattalo.com not found: 3(NXDOMAIN)
于 2020-08-18T15:52:04.530 回答