我能够从dart发出警报消息,但无法弄清楚如何调用我在dart的另一个js文件中编写的函数.如果直截了当,这将是一个很好的卖点.我确实看到了这篇帖子,它让我开始了,但我觉得必须有办法,所以如果你想出来的话请分享爱.
这就是我所做的:
将其添加到yaml文件:
依赖项:js:hosted:js
将import语句添加到dart文件的顶部:import'package:js/js.dart'as js;
添加此代码以显示警报消息
js.scoped((){js.context.alert("跳跃为喜悦!");});
这是我认为应该工作的部分但不是:鉴于我有一个javascript函数doSomething(),我应该可以调用
js.context.doSomething();
是否可以在 Flutter 网页中嵌入 Youtube 视频?我尝试了以下代码在我的 Flutter 网站中嵌入了一个 Youtube,但页面上没有显示任何错误消息。
import 'package:flutter_html_view/flutter_html_view.dart';
Container(child: HtmlView(data: """
<iframe src="https://www.youtube.com/embed/xMzkWfIR9Pk" width="560" height="315"></iframe>
""")),
Run Code Online (Sandbox Code Playgroud)
还尝试了此处推荐的解决方案(Flutter Web 中的 WebView),但这也不起作用。
import 'dart:ui' as ui
//ignore: undefined_prefixed_name
ui.platformViewRegistry.registerViewFactory(
'hello-world-html',
(int viewId) => html.IFrameElement()
..width = '640'
..height = '360'
..src = 'https://www.youtube.com/embed/IyFZznAk69U'
..style.border = 'none');
Run Code Online (Sandbox Code Playgroud) 我需要带有 bpmn.js 视图的小部件:https : //github.com/bpmn-io/bpmn-js
使用 HtmlElementView:
// ignore: undefined_prefixed_name
ui.platformViewRegistry
.registerViewFactory('bpmn_view', (int viewId) => element);
return Column(
children: <Widget>[
Expanded(
child: HtmlElementView(key: UniqueKey(), viewType: "bpmn_view")),
],
);
Run Code Online (Sandbox Code Playgroud)
使用js:
const html = '''
<div id="canvas">canvas</div>
<script>
(function () {
window.addEventListener('view_bpmn', function (e) {
var bpmnJS = new BpmnJS({
container: "#canvas"
});
bpmnJS.importXML(e.details);
}, false);
}());
</script>
''';
element.setInnerHtml(html,
validator: NodeValidatorBuilder.common()..allowElement('script'));
Run Code Online (Sandbox Code Playgroud)
但是我在执行时出现错误:
VM4761 bpmn-viewer.development.js:18864 Uncaught TypeError: Cannot read property 'appendChild' of null
at Viewer.BaseViewer.attachTo (VM4761 bpmn-viewer.development.js:18864)
at Viewer.BaseViewer._init (VM4761 bpmn-viewer.development.js:18911) …Run Code Online (Sandbox Code Playgroud)