You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

横幅是通知用户关于系统和应用事件的消息。横幅被明显的显示在Magnolia Shell的顶部或底部,能有效的吸引用户的注意,但又不影响用户正在进行的工作。横幅是唯一一个永久的消息类型。用户可以安全的关闭横幅,并稍后在Pulse信息中心中阅读。

在应用代码里显示横幅消息

显示横幅消息:

  1. AppContext或是SubAppContext注入到您的类中,以获得消息的方便方法。或者,在您的应用或子应用类里使用getAppContextgetSubAppContext。如果您扩展BaseSubApp,您将一直可以获得getAppContextgetSubAppContext
  2. 创建一个新的
    $webResourceManager.requireResource("info.magnolia.sys.confluence.artifact-info-plugin:javadoc-resource-macro-resources") Message
    对象。只有当您想要做自己的消息类型时,才需要传递
    $webResourceManager.requireResource("info.magnolia.sys.confluence.artifact-info-plugin:javadoc-resource-macro-resources") MessageType
@Inject
public MySubApp(SubAppContext subAppContext, MyView view) {
   super(subAppContext, view);
   view.setListener(this);
}
 
@Override
public void handleGroupMessage(final String group, final MessageType type, final String subject, final String message) {
   getAppContext().sendGroupMessage(group, new Message(type, subject, message));
}

对已命名用户显示横幅消息

AppContext提供发送消息的简便方法。已登录的用户会立即收到一个窗口提示通知。任何情况下,消息都是以未读形式储存在Pulse信息中心。

void sendUserMessage(String user, Message message);

对组内所有用户显示横幅消息

已登录的组内用户,会收到即时的弹出窗口通知。在任何情况下,消息都会以未读形式存储在Pulse中。

void sendGroupMessage(String group, Message message);

对当前用户显示横幅消息

下列代码段与shell.showNotification(messageText)起到相同作用。

private sendToCurrentUser(String messageText) {
   final Message message = new Message();
   message.setMessage(messageText);
   message.setType(MessageType.INFO);
   messagesManager.sendLocalMessage(message);
}

对所有用户广播横幅消息

已登录的用户会收到即时的弹出窗口通知。在任何情况下,消息都会以未读形式存储在Pulse中。

void broadcastMessage(Message message);

样例可以参看MessagesMainSubapp.java

使用Messages应用显示横幅消息

Messages应用是一个允许您发送消息给单个用户,组,或是所有用户的工具。您可以在Dev组找到这个应用。Dev组默认只对superuser角色可用,如应用启动器许可中配置。

发送的消息在Pulse中显示。

  • No labels