【发布时间】:2020-04-19 09:31:00
【问题描述】:
我正在尝试从本地 HTML 文件插入 iframe。 对于这个 porpouse,我创建了一个 StatefulWidget 来在 HtmlElementView 中呈现 html。 这个 sn-p 运行良好。 我看到了 iframe,它可以工作,但它有一个奇怪的行为: 每次它在任何 setState 上重新初始化 html,甚至在 FlatButton 上重新初始化 onMousOver。
为什么?坦克
import 'dart:async';
import 'dart:html' as html;
import 'dart:js' as js;
import 'dart:js';
import 'dart:ui' as ui;
import 'package:flutter/material.dart';
class MapPlugin extends StatefulWidget {
MapPlugin();
_MapPluginState createState() => _MapPluginState();
}
class _MapPluginState extends State<MapPlugin> {
String createdViewId = 'map_element';
@override
void initState() {
ui.platformViewRegistry.registerViewFactory(
createdViewId,
(int viewId) => html.IFrameElement()
..width = '800'
..height = '400'
..src = "/assets/map.html"
..style.border = 'none');
super.initState();
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return Container(
padding: EdgeInsets.symmetric(horizontal: 10),
decoration: BoxDecoration(
color: Colors.white,
border: Border.all(color: Colors.grey[300], width: 1),
borderRadius: BorderRadius.all(Radius.circular(5))),
width: 200,
height: 200,
child: Directionality(
textDirection: TextDirection.ltr,
child: HtmlElementView(
viewType: createdViewId,
)));
}
}
【问题讨论】:
-
如何调用html JavaScript函数调用
标签: html flutter flutter-web