我正在尝试在 Flutter for Web 中显示 Web 视图,但出现以下错误:
PlatformException(Unregistered factory, No factory registered for viewtype 'plugins.flutter.io/webview', null)
Run Code Online (Sandbox Code Playgroud)
有没有办法在 Flutter Web 中显示 WebView?
ale*_*607 16
编辑:这是截至 2021 年 5 月 16 日的可运行示例:
import 'dart:html';
import 'package:flutter/material.dart';
import 'dart:ui' as ui;
void main() {
// ignore: undefined_prefixed_name
ui.platformViewRegistry.registerViewFactory(
'hello-world-html',
(int viewId) => IFrameElement()
..width = '640'
..height = '360'
..src = 'https://www.youtube.com/embed/IyFZznAk69U'
..style.border = 'none');
runApp(Directionality(
textDirection: TextDirection.ltr,
child: SizedBox(
width: 640,
height: 360,
child: HtmlElementView(viewType: 'hello-world-html'),
),
));
}
Run Code Online (Sandbox Code Playgroud)
这篇文章的其余部分只是复制了上面的内容,并且是原作者的原始帖子
您首先需要执行 platformViewRegistry:
ui.platformViewRegistry.registerViewFactory(
'hello-world-html',
(int viewId) => IFrameElement()
..width = '640'
..height = '360'
..src = 'https://www.youtube.com/embed/IyFZznAk69U'
..style.border = 'none');
Run Code Online (Sandbox Code Playgroud)
看看那个例子。在该示例中,旧库已导入(29.09.19),但如果您在 'flutter' 上更改 'flutter_web',它必须工作。
此外,您不仅可以使用“IFrameElement”,还可以使用常规 html:
ui.platformViewRegistry.registerViewFactory("simple_div", (int viewId) {
DivElement element = DivElement();
...
return element;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13441 次 |
| 最近记录: |