Flutter - dart.ui 没有方法'platformViewRegistry'
Posted
技术标签:
【中文标题】Flutter - dart.ui 没有方法\'platformViewRegistry\'【英文标题】:Flutter - dart.ui no method 'platformViewRegistry'Flutter - dart.ui 没有方法'platformViewRegistry' 【发布时间】:2021-01-24 04:16:12 【问题描述】:我在 Flutter web 上工作,我想渲染一个 html 代码。由于flutter_webview_plugin 不支持flutter web,但我正在使用IFrameElement 和HtmlElementView。但是我在使用 dart.ui 时遇到了这个问题,platformViewRegistry
方法没有定义。
错误信息:
通过前缀“ui”引用名称“platformViewRegistry”,但在使用该前缀导入的任何库中都没有定义它。
import 'dart:ui' as ui;
......
ui.platformViewRegistry.registerViewFactory(
createdViewId,
(int viewId) => html.IFrameElement()
..width = MediaQuery.of(context).size.width.toString() //'800'
..height = MediaQuery.of(context).size.height.toString() //'400'
..srcdoc = """<!DOCTYPE html><html>
<head><title>Page Title</title></head><body><h1>This is a Heading</h1><p>This is a paragraph.</p></body></html>"""
..style.border = 'none');
示例代码来自:https://***.com/a/60089273/12789200
我阅读了一些解决方案来解决这个问题。但我不想降级我的颤振版本。由于在过去的一个月里 Flutter 发生了很多变化
颤振医生
[√] Flutter (Channel beta, 1.22.1, on Microsoft Windows [Version 10.0.19041.508], locale en-US)
[√] android toolchain - develop for Android devices (Android SDK version 29.0.2)
[√] Chrome - develop for the web
[√] Android Studio (version 4.0)
[√] VS Code (version 1.49.3)
[√] Connected device (3 available)
这个问题还有其他解决方案吗?或者我可以在 Flutter Web 上用于 WebView 的另一个示例。
【问题讨论】:
【参考方案1】:据我所知,我已经尝试了几种解决方案,显然 'dart:ui'
包中存在问题。
我尝试过的解决方案是:
-
尝试使用 WebView 小部件 //失败 尚无网络支持
尝试在 HTML 而不是 CanvasKit 上进行渲染 //UI 看起来很垃圾
尝试编辑
**analysis_options.yaml**
尝试在//ignore: undefined_prefixed_name
的代码上方添加注释
所有这些解决方案都提到了其他错误,解决方案是使用一个名为:
来自https://pub.dev/packages/universal_ui 的universal_ui,显然与'dart:ui'
包相同,但包含所有方法。
希望这对你有用!
【讨论】:
universal_ui 不是空安全的,如果您现在在项目中是空安全的,想知道您在使用什么。以上是关于Flutter - dart.ui 没有方法'platformViewRegistry'的主要内容,如果未能解决你的问题,请参考以下文章
dart:ui:1:错误:未找到:dart:ui。颤振/飞镖: