Dart 语言:打印报告

2023-12-13

我想知道如何在 Dart 上打印报告。

基本上,这是活动流程:

  1. 用户单击“报告”按钮。
  2. 新的浏览器窗口已创建。
  3. 相关数据被放置在新窗口中。

当然,如果有任何 API 可以做到这一点,我会使用它。

到目前为止,我尝试创建一个新窗口,在其上添加 onMessage 侦听器并在主类上调用 postMessage 来发送数据。然而,这并没有奏效。该消息永远不会到达另一端(主>新浏览器窗口)。

主要飞镖课程

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());
    });
}

Update

开始从报告窗口发送至window.opener.postMessage(...)然后回应(message.source as WindowBase).postMessage(...)。 这可能是一个返回值的错误window.open (see http://dartbug.com/20216更多细节)。

Original

此单元测试中的代码应该向您展示如何完成它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>元素(顺便说一句,也不起作用。)。但我假设您只需要打开窗口,注释掉的代码应该可以很好地做到这一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Dart 语言:打印报告 的相关文章

随机推荐