javascript - Closeclear a chrome extension notification while notification panel is open - Stack Overflow

References: I am using the chrome.notifications.create(string id, object options, function callback); t

References:

I am using the chrome.notifications.create(string id, object options, function callback); to create a chrome notification.

var id = 'list';

var options = {};
options.title = 'test';
options.iconUrl = 'notification_icon.png';
options.type = 'list';
options.message = "test";
options.buttons = [{title: 'test'}];
options.items = [{title: 'test', message:'test'}];

var createCallback = function(notificationId) { console.log(notificationId); };

chrome.notifications.create(id, options, createCallback); // returns 'list';

This creates a notification as expected. All working correctly.

I then call chrome.notification.clear(string id, function callback);

var id = 'list';

var clearCallback= function(wasCleared) { console.log(wasCleared); };

chrome.notification.clear(id, clearCallback); // returns true;

This does clear the notification. All working correctly.

EXCEPT it does not clear the notification out if the notification panel is open. This is not a major problem 99% of the time. Until I implemented the button code within the notification.

Using chrome.notifications.onButtonClicked.addListener(function callback); On click I am calling the clear notification panel code, and it reports back as it has been cleared.

var onButtonClickedCallback = function (notificationId, buttonIndex) {
    console.log(notificationId, buttonIndex);
    if ( notificationId == 'list' ) {
        chrome.notification.clear(id, clearCallback); // returns true;
    }
}
chrome.notifications.onButtonClicked.addListener(onButtonClickedCallback); // onClick it returns 'list', 0

But I am looking right at it.. Once the notification panel closes and opens again, I can confirm it has actually gone. But obviously since I am clicking a button on the notification, the panel is open, but it does not clear away as I would have liked.

All this is running in an extension background without the persistence: false property (so the script is always loaded, and since I can see the output, I know the functions are being called).

Have I overlooked something? I do not see any functions that deal with closing the notification panel. So as far as I can tell, I am clearing the notification but the panel is not updating it's display.

I am using Chrome 37.0.2019.0 canary on Win8

If anyone can suggest something I may have missed, I would be greatful. My google searches reveal people having problems with the HTML notification.

References: https://developer.chrome./apps/notifications

I am using the chrome.notifications.create(string id, object options, function callback); to create a chrome notification.

var id = 'list';

var options = {};
options.title = 'test';
options.iconUrl = 'notification_icon.png';
options.type = 'list';
options.message = "test";
options.buttons = [{title: 'test'}];
options.items = [{title: 'test', message:'test'}];

var createCallback = function(notificationId) { console.log(notificationId); };

chrome.notifications.create(id, options, createCallback); // returns 'list';

This creates a notification as expected. All working correctly.

I then call chrome.notification.clear(string id, function callback);

var id = 'list';

var clearCallback= function(wasCleared) { console.log(wasCleared); };

chrome.notification.clear(id, clearCallback); // returns true;

This does clear the notification. All working correctly.

EXCEPT it does not clear the notification out if the notification panel is open. This is not a major problem 99% of the time. Until I implemented the button code within the notification.

Using chrome.notifications.onButtonClicked.addListener(function callback); On click I am calling the clear notification panel code, and it reports back as it has been cleared.

var onButtonClickedCallback = function (notificationId, buttonIndex) {
    console.log(notificationId, buttonIndex);
    if ( notificationId == 'list' ) {
        chrome.notification.clear(id, clearCallback); // returns true;
    }
}
chrome.notifications.onButtonClicked.addListener(onButtonClickedCallback); // onClick it returns 'list', 0

But I am looking right at it.. Once the notification panel closes and opens again, I can confirm it has actually gone. But obviously since I am clicking a button on the notification, the panel is open, but it does not clear away as I would have liked.

All this is running in an extension background without the persistence: false property (so the script is always loaded, and since I can see the output, I know the functions are being called).

Have I overlooked something? I do not see any functions that deal with closing the notification panel. So as far as I can tell, I am clearing the notification but the panel is not updating it's display.

I am using Chrome 37.0.2019.0 canary on Win8

If anyone can suggest something I may have missed, I would be greatful. My google searches reveal people having problems with the HTML notification.

Share Improve this question asked May 29, 2014 at 10:49 WORMSSWORMSS 1,67430 silver badges37 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 5

This is a known bug, or rather an old design decision, with little progress.

Star the issue to raise its priority. I also suffer from the same.

Here's the workaround solution I've been using for several months now:

// open a window to take focus away from notification and there it will close automatically
function openTemporaryWindowToRemoveFocus() {
   var win = window.open("about:blank", "emptyWindow", "width=1, height=1, top=-500, left=-500");
   win.close();
}

chrome.notifications.clear("", function(wasCleared) {
    openTemporaryWindowToRemoveFocus()
});

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745198310a4616199.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信