1

Flutter の webview から次のスクリプトを開こうとしています:

<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 で機能させるには、Google のWeb コンポーネントを埋め込み、必要な回避策を組み込んだFlutter 用のModel Viewerパッケージを使用するだけです ( drydart/model_viewer.dart#4を参照)。<model-viewer>

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 に答える