1
A
回答
0
這裏的例子,說明如何使用JxBrowser通知API來顯示桌面通知:
import com.teamdev.jxbrowser.chromium.*;
import com.teamdev.jxbrowser.chromium.events.NotificationEvent;
import com.teamdev.jxbrowser.chromium.events.NotificationListener;
import com.teamdev.jxbrowser.chromium.swing.BrowserView;
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
/**
* Demonstrates how to handle HTML5 Desktop Notifications.
*/
public class NotificationSample {
public static void main(String[] args) {
Browser browser = new Browser();
BrowserView view = new BrowserView(browser);
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.add(view, BorderLayout.CENTER);
frame.setSize(700, 500);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
// Grant notification permission if it's necessary
browser.setPermissionHandler(new PermissionHandler() {
@Override
public PermissionStatus onRequestPermission(PermissionRequest request) {
if (request.getPermissionType() == PermissionType.NOTIFICATIONS) {
return PermissionStatus.GRANTED;
}
return PermissionStatus.DENIED;
}
});
// Display your own notification GUI
BrowserContext browserContext = browser.getContext();
NotificationService notificationService = browserContext.getNotificationService();
notificationService.setNotificationHandler(new NotificationHandler() {
@Override
public void onShowNotification(NotificationEvent event) {
showNotification(event.getNotification());
}
});
browser.loadURL("notifications.html");
}
private static void showNotification(final Notification notification) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
final JFrame frame = new JFrame(notification.getTitle());
frame.setAlwaysOnTop(true);
JLabel messageLabel = new JLabel(notification.getMessage());
messageLabel.setBorder(BorderFactory.createEmptyBorder(15, 15, 15, 15));
frame.add(messageLabel, BorderLayout.CENTER);
frame.setMinimumSize(new Dimension(300, 100));
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
notification.close();
}
});
notification.addNotificationListener(new NotificationListener() {
@Override
public void onClose(NotificationEvent event) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
frame.setVisible(false);
frame.dispose();
}
});
}
});
}
});
}
}
相關問題
- 1. 桌面通知
- 2. HTML5桌面通知
- 3. Vaadin桌面通知
- 4. 如何響應桌面啓動通知與Qt
- 5. 如何樣式化HTML5桌面通知?
- 6. 如何從Chrome創建桌面通知?
- 7. 如何讓QWebView顯示桌面通知?
- 8. 如何控制Chrome桌面通知
- 9. gmail中的桌面通知
- 10. Chrome桌面HTML通知
- 11. Chrome的桌面通知
- 12. Java桌面通知Ubuntu
- 13. asp.net中的桌面通知
- 14. Html5桌面通知php/mysql
- 15. Facebook桌面通知器
- 16. 如何在Chromium嵌入式框架(CEF)中啓用桌面通知?
- 17. 桌面應用推送通知?
- 18. HTML5桌面通知(最好用Angular)
- 19. Chrome桌面通知給所有用戶
- 20. 另一個用戶的桌面通知
- 21. Nodewebkit應用程序的桌面通知
- 22. 如何在谷歌應用腳本中使用桌面通知?
- 23. 如何使用firefox addon sdk添加多個桌面通知?
- 24. 如何將推送通知發送到桌面應用程序
- 25. 如何爲您的Web應用程序創建桌面通知?
- 26. 無法啓動JXBrowser
- 27. IE中的Webkit桌面通知
- 28. 帶Addon Builder的Html桌面通知Firefox
- 29. HTML5 - 推送狀態桌面通知
- 30. 隱藏以前的HTML桌面通知
有像setPermissionHandler和jxbrowser沒有API setNotificationHandler和getNotificationService()您使用的是哪個版本的Jxbrowser –
根據發行說明,此API在6.8中添加:https://jxbrowser.support.teamdev.com/support/discussions/forums/9000110576 – Vladimir