繁体   English   中英

Flutter - dart.ui 没有方法 'platformViewRegistry'

[英]Flutter - dart.ui no method 'platformViewRegistry'

我正在处理 Flutter web,我想呈现一个 html 代码。 由于 flutter_webview_plugin 不支持 flutter web 但我正在使用 IFrameElement 和 HtmlElementView。 但是我在使用 dart.ui 时遇到了这个问题,没有定义platformViewRegistry方法。

错误信息:

名称“platformViewRegistry”通过前缀“ui”引用,但未在使用该前缀导入的任何库中定义。

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://stackoverflow.com/a/60089273/12789200

我阅读了一些解决方案来解决这个问题。 但是我不想降级我的 flutter 版本。 由于在过去的一个月里 Flutter 发生了很大的变化

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。

据我所知,我已经尝试了几种解决方案,显然'dart:ui' package 中存在问题。我尝试过的解决方案是:

  1. 尝试使用 WebView 小部件// 失败 尚无 web 支持
  2. 尝试在 HTML 而不是 CanvasKit 上渲染//UI 看起来很垃圾
  3. 尝试编辑**analysis_options.yaml**
  4. 尝试在代码上方添加注释//ignore: undefined_prefixed_name

所有这些解决方案都涉及其他错误,解决方案是使用一个名为 package 的 universal_ui 来自https://pub.dev/packages/universal_ui ,这显然与'dart:ui' package 相同,但包含所有方法. 希望这对你有用!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM