Google chrome 如何在chrome扩展中注销gcm

Google chrome 如何在chrome扩展中注销gcm,google-chrome,google-chrome-extension,google-cloud-messaging,chrome-gcm,Google Chrome,Google Chrome Extension,Google Cloud Messaging,Chrome Gcm,我使用GCM向用户浏览器发送通知。要注册我使用的GCM服务 function registerCallback(registrationId) { if (chrome.runtime.lastError) { // When the registration fails, handle the error and retry the // registration later. return; } // Send the registration toke

我使用GCM向用户浏览器发送通知。要注册我使用的GCM服务

function registerCallback(registrationId) {
  if (chrome.runtime.lastError) {
    // When the registration fails, handle the error and retry the
    // registration later.
    return;
  }

  // Send the registration token to your application server.
  sendRegistrationId(function(succeed) {
    // Once the registration token is received by your server,
    // set the flag such that register will not be invoked
    // next time when the app starts up.
    if (succeed)
      chrome.storage.local.set({registered: true});
  });
}

function sendRegistrationId(callback) {
  // Send the registration token to your application server
  // in a secure way.
}

chrome.runtime.onStartup.addListener(function() {
  chrome.storage.local.get("registered", function(result) {
    // If already registered, bail out.
    if (result["registered"])
      return;

    // Up to 100 senders are allowed.
    var senderIds = ["Your-Sender-ID"];
    chrome.gcm.register(senderIds, registerCallback);
  });
});
我的扩展正在与GCM建立连接,我正在向用户浏览器发送通知。我的问题是当用户卸载扩展时如何注销GCM令牌。chrome扩展中没有卸载事件。你能告诉我在我的chrome扩展中在哪里写未注册的GCM连接代码吗

在我的扩展名(background.js、contentscript.js)中的何处编写此代码


当用户卸载您的应用程序时,它将自动从GCM服务中注销。不需要为它设置事件侦听器


source-

有一个setUninstallUrl,它可以帮助您从外部服务器执行此操作。现在,如果通知无法送达用户,为什么需要取消注册?嗨,谢谢你的回复。我安装了我的chrome扩展,并多次卸载以在我的PC中测试我的扩展,每次安装都会创建一个GCM id(我安装10次意味着创建10个GCM id)。每当我向用户发送通知时,我都会收到10个通知,因为我的GCM ID未注册。我不知道在哪里调用注销函数我的扩展。@Java4you我正在处理完全相同的问题:)您找到解决方案了吗?您的应用程序或扩展可以调用gcm.unregister来撤销注册令牌。只有在极少数情况下才能取消注册,例如,如果您的应用程序或扩展不想接收更多消息,或者怀疑注册令牌被泄露。
function unregisterCallback() {
  if (chrome.runtime.lastError) {
    // When the unregistration fails, handle the error and retry
    // the unregistration later.
    return;
  }
}

chrome.gcm.unregister(unregisterCallback);