横幅是通知用户关于系统和应用事件的消息。横幅被明显的显示在Magnolia Shell的顶部或底部,能有效的吸引用户的注意,但又不影响用户正在进行的工作。横幅是唯一一个永久的消息类型。用户可以安全的关闭横幅,并稍后在Pulse信息中心中阅读。
在应用代码里显示横幅消息
显示横幅消息:
- 将
AppContext
或是SubAppContext
注入到您的类中,以获得消息的方便方法。或者,您也可以在您的应用或子应用类里使用getAppContext
或getSubAppContext
。如果您扩展了BaseSubApp
,您将一直可以获得getAppContext
和getSubAppContext
。 - 创建一个新的$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中。样例请参看MessagesMainSubapp.java。
void broadcastMessage(Message message);
使用消息应用显示横幅消息
消息应用是一个允许您发送消息给单个用户、组或是所有用户的工具。您可以在开发组找到这个应用。开发组默认只对superuser
角色的用户可用,在应用启动器 > 许可中配置。
发送的消息在Pulse中显示。
Overview
Content Tools