android - 如何在 web 模式下将 flutter_web_view 转换为 HtmlElementView

标签 android flutter dart webview

这可能是一个重复的问题,因为我已经看到很多与 iframe、webview 和所有这些有关的问题,但在我研究它们时,每个问题都让我更加困惑。目前,我正在使用 WebView 小部件在我的移动应用程序中显示 WebView 。我希望现在为 web 构建,但 WebView 不支持 web,所以我一直在寻找替代方法。我从 flutter 文档中了解了 HtmlElementView。试图研究它,但我似乎找不到任何明确的方法我应该用它来解决我的问题。

这是我的代码:

    Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Container(
          margin: EdgeInsets.fromLTRB(0, 15, 0, 0),
          child: !kIsWeb
              ? WebView(
                  initialUrl: this.widget._url,
                  javascriptMode: JavascriptMode.unrestricted,
                  onPageStarted: this._pageStarted,
                )
              : HtmlElementView(
                  viewType: '',
                ),
        ),
      ),
    );
  }

根据我的代码,我在未针对 web 编译时构建 WebView,在针对 web 编译时构建 HtmlElementView。尽管我不想这么说,但这是我目前对 HtmlElementView 的了解。从文档中,viewType 是采用一个我真的不知道的字符串。

我到底想做什么? WebView 中加载的内容是动态的,因此我希望在 HtmlElementView 中加载相同内容。任何可以帮助我的帮助或 Material 都将不胜感激,因为我对所有这些都不熟悉。谢谢。

最佳答案

我目前正在进行相同的探索,并发现了这个方便、简单的示例:

https://codepen.io/riccio85/pen/wvMeaMe

import 'dart:html';
import 'dart:ui' as ui;
import 'package:flutter/material.dart';

void main() {
  // ignore: undefined_prefixed_name
  ui.platformViewRegistry.registerViewFactory(
      'hello-html',
      (int viewId) => IFrameElement()
        ..width = '500'
        ..height = '360'
        ..src = 'https://www.youtube.com/embed/xg4S67ZvsRs'
        ..style.border = 'none');

  runApp( Padding(
        padding: EdgeInsets.all(25),
        child: SizedBox(
          width: 640,
          height: 360,
          child: HtmlElementView(viewType: 'hello-html'),
      ),
    ),
  );
}

它并不完美,但它似乎可以满足我的需要。也就是说,我最终也以与您的示例相同的方式检查网络,否则使用 webview_flutter

目前整个事情似乎有点不足,希望情况有所改善。

关于android - 如何在 web 模式下将 flutter_web_view 转换为 HtmlElementView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64998597/

相关文章:

firebase - 如何将数据从 Firebase 转换为完全类型化的 Map?

flutter - 如何从 FutureBuilder 返回不同的 MaterialApp 小部件

dart - 从 Uri 中提取参数/值对作为 Map

android - 使用带有自定义 View 或 ImageView 的 Android Google Maps v2

android - 使用 appcompat v7 自定义 EditText 样式

android - ActiveAndroid 数据库位置动态变化

flutter - Flare Flutter 动画问题

dart - 在 flutter 应用中出现卡顿和帧率下降是否正常?

dart - Future Builder 制作 Sliver Lists

c# - 获取安卓版本信息