如何使气球通知中的 URL 可点击?
How to make a URL in a balloon notification clickable?
我正在创建一个简单的 IntelliJ 插件,它允许直接从 IDE 创建新的 Pastebin 粘贴。
当粘贴成功发布到 Pastebin 时,我想显示气球通知。
目前通知显示如下:
final Response<String> postResult = Constants.PASTEBIN.post(paste);
NotificationGroup balloonNotifications = new NotificationGroup("Notification group", NotificationDisplayType.BALLOON, true);
if (postResult.hasError()) {
//Display error notification
} else {
//Display success notification
Notification success = balloonNotifications.createNotification("Successful Paste", "<a href=\"" + postResult.get() + "\">Paste</a> successfully posted!", NotificationType.INFORMATION, null);
Notifications.Bus.notify(success, project);
}
现在,此气球通知包含新创建的粘贴的 URL,但遗憾的是单击它不会在浏览器中打开 link。如何实现?
带有 URL 的气球通知应该可以点击:
经过一番搜索,我自己找到了答案。其实并不难。
如果我按如下方式实例化通知,则 link 可按要求点击。
Notification success = balloonNotifications.createNotification("<html>Successful Paste", "<a href=\"" + postResult.get() + "\" target=\"blank\">Paste</a> successfully posted!</html>", NotificationType.INFORMATION, (notification, hyperlinkEvent) -> {
if (hyperlinkEvent.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
BrowserUtil.browse(hyperlinkEvent.getURL());
}
});
注意:事件日志中的link现在也可以点击了,这也很有用。
有 NotificationListener 在通知中打开 url:com.intellij.notification.UrlOpeningListener
所以你可以这样写:
Notification success = balloonNotifications.createNotification(
"<html>Successful Paste", "<a href=\"" + postResult.get() + "\" target=\"blank\">Paste</a> successfully posted!</html>",
NotificationType.INFORMATION, new NotificationListener.UrlOpeningListener(true));
我正在创建一个简单的 IntelliJ 插件,它允许直接从 IDE 创建新的 Pastebin 粘贴。
当粘贴成功发布到 Pastebin 时,我想显示气球通知。
目前通知显示如下:
final Response<String> postResult = Constants.PASTEBIN.post(paste);
NotificationGroup balloonNotifications = new NotificationGroup("Notification group", NotificationDisplayType.BALLOON, true);
if (postResult.hasError()) {
//Display error notification
} else {
//Display success notification
Notification success = balloonNotifications.createNotification("Successful Paste", "<a href=\"" + postResult.get() + "\">Paste</a> successfully posted!", NotificationType.INFORMATION, null);
Notifications.Bus.notify(success, project);
}
现在,此气球通知包含新创建的粘贴的 URL,但遗憾的是单击它不会在浏览器中打开 link。如何实现?
带有 URL 的气球通知应该可以点击:
经过一番搜索,我自己找到了答案。其实并不难。
如果我按如下方式实例化通知,则 link 可按要求点击。
Notification success = balloonNotifications.createNotification("<html>Successful Paste", "<a href=\"" + postResult.get() + "\" target=\"blank\">Paste</a> successfully posted!</html>", NotificationType.INFORMATION, (notification, hyperlinkEvent) -> {
if (hyperlinkEvent.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
BrowserUtil.browse(hyperlinkEvent.getURL());
}
});
注意:事件日志中的link现在也可以点击了,这也很有用。
有 NotificationListener 在通知中打开 url:com.intellij.notification.UrlOpeningListener
所以你可以这样写:
Notification success = balloonNotifications.createNotification(
"<html>Successful Paste", "<a href=\"" + postResult.get() + "\" target=\"blank\">Paste</a> successfully posted!</html>",
NotificationType.INFORMATION, new NotificationListener.UrlOpeningListener(true));