我使用GCM向用户浏览器发送通知。要注册我使用的GCM服务如何在Chrome扩展中注销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)这个代码..
function unregisterCallback() {
if (chrome.runtime.lastError) {
// When the unregistration fails, handle the error and retry
// the unregistration later.
return;
}
}
chrome.gcm.unregister(unregisterCallback);
有setUninstallUrl这可能会帮助你从外部服务器做到这一点。现在,为什么你需要取消注册,如果通知不会到达用户呢? –
嗨,谢谢你的回复。我安装了我的Chrome扩展程序并卸载了很多次,以便在我的PC中测试每个GCM ID正在创建的每个安装(我安装的10次意味着创建了10个GCM ID)的扩展。每当我向用户发送通知时,我都会收到10条通知,因为我的GCM ID未被注册。我不知道在哪里调用取消注册功能我的扩展。 – Java4you
@ Java4you我正在处理完全相同的问题:)你有没有找到这个解决方案? –