1

Я использовал GCM для отправки уведомлений в пользовательские браузеры. Чтобы зарегистрировать услугу GCM, я использовалКак отменить регистрацию gcm в расширении chrome

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-расширении нет события удаления. Не могли бы вы рассказать мне, где писать код регистрации GCM в моем расширении chrome.

Где написать этот код в моем расширении (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); 
+0

есть setUninstallUrl, которые могут помочь вам сделать это с внешнего сервера. теперь, почему вам нужно отменить регистрацию, если уведомление все равно не достигнет пользователя? –

+1

Привет, Спасибо за ваш ответ. Я установил свое расширение chrome и удалил столько раз, чтобы протестировать мое расширение на моем ПК каждую установку, которую создает один идентификатор GCM (в 10 раз я устанавливаю средства 10 идентификаторов GCM). Всякий раз, когда я отправлял уведомление пользователям, я получал 10 уведомлений, потому что мои идентификаторы GCM не зарегистрированы. Я не знаю, где можно вызвать функцию отмены регистрации моего расширения. – Java4you

+0

@ Java4you Я имею дело с одной и той же проблемой :) Вы нашли решение для этого? –

ответ

1

Вашего приложение будет автоматически незарегистрированным от службы GCM, когда пользователь удаляет его. Нет необходимости иметь слушателя событий!

источник - https://developers.google.com/cloud-messaging/chrome/client

+0

Ваше приложение или расширение могут вызвать gcm.unregister для аннулирования регистрационного токена. Отмена регистрации должна выполняться только в редких случаях, например, если ваше приложение или расширение не хотят получать дальнейшие сообщения, или предполагается, что маркер регистрации подвержен риску. – Java4you

Смежные вопросы