我想知道如何在Dart上打印报告。
基本上,这是 Activity 流程:
当然,如果有任何API可以做到这一点,我会使用它。
到目前为止,我已经尝试创建一个新窗口,在其上添加onMessage侦听器,并在主类上调用postMessage以发送数据。但是,它没有用。该消息永远不会到达另一侧(主>新浏览器窗口)。
主 Dart 类
var reportWindow;
void createReportWindow() {
reportWindow = window.open("report.html", "");
}
void sendMessage(String message) {
reportWindow.postMessage(message, "*");
}
报告Dart类(链接到report.html)
void startListening() {
window.onMessage.listen((e) {
print(e.data.toString());
});
}
最佳答案
更新资料
开始从报告窗口发送到window.opener.postMessage(...)
,然后响应(message.source as WindowBase).postMessage(...)
。
这可能是带有window.open
返回值的错误(有关更多详细信息,请参见http://dartbug.com/20216)。
原版的
该单元测试中的代码应向您展示如何完成https://github.com/dart-lang/core-elements/blob/master/test/core_media_query_test.dart。
我从一个新的URL打开一个窗口,该窗口从服务器加载其内容和Dart脚本(当然也可以编译为JavaScript)。打开的窗口通过sendMessage
与主窗口通信。这在两个方向上都有效。
基本上,第二个窗口是第二个Dart浏览器应用程序。
我想这可能并不是您要找的东西,但是您的要求可以实现。
在https://github.com/dart-lang/core-elements/blob/master/test/core_media_query_test.dart#L66这一行,注释掉的代码可能符合您的要求。我创建了以下解决方法,因为该代码应该从主窗口中的代码调整第二个窗口的大小,以测试<core-media-query>
元素(顺便说一句也不起作用)。但是我认为您只需要打开窗口,注释掉的代码就可以正常工作。
关于printing - Dart语言:打印报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27048607/