簡體   English   中英

Parse.com推送通知滯后和重復

[英]Parse.com push notifications lags and duplications

兩天前,我集成了解析推送通知,並且運行良好。 今天,我進行了更多測試,並且有很大的滯后,例如解析通知是在30分鍾之后而不是前幾天的5秒之后發出的。

另外,我有4台設備,我收到了11個“已發送的推送”,而不是4個。經過一會兒的測試,它開始正常工作,只有4個“已發送的推送”,並且最多一分鍾而不是30分鍾。

另外,我在開發人員設備上的相同推動次數是我的5倍,在該設備上我經常安裝和卸載應用程序,而在其他開發設備上則是4次,因此總和為11。

解析延遲是否存在已知問題? 我需要最多一分鍾的回復。 我雖然這是可靠的服務。 是暫時的情況還是正常?

每次卸載並安裝應用程序時,都會得到一個新的安裝對象。 不幸的是,舊的Installation對象永遠不會消失。 您需要做的是為設備使用一些唯一的標識符,然后更新安裝(如果存在)。

例如,假設您正在嘗試在Android上執行此操作。 在您的應用程序中,您可以獲得設備的ANDROID_ID並將其保存到安裝中:

ParseInstallation.getCurrentInstallation().put("uniqueId",
                Settings.Secure.getString(getApplicationContext().getContentResolver(),
                        Settings.Secure.ANDROID_ID));

然后,您可以擁有每次保存新安裝都會觸發的雲功能:

Parse.Cloud.beforeSave(Parse.Installation, function(request, response) {
Parse.Cloud.useMasterKey();
var query = new Parse.Query(Parse.Installation);
query.equalTo("uniqueId", request.object.get("uniqueId"));
query.first().then(function(duplicate) {
    if (typeof duplicate === "undefined") {
        console.log("Duplicate does not exist,New installation");
        response.success();
    } else {
        console.log("Duplicate exist..Trying to delete " + duplicate.id);
        duplicate.destroy().then(function(duplicate) {
            console.log("Successfully deleted duplicate");
            response.success();
        }, function() {
            console.log(error.code + " " + error.message);
            response.success();
        });

    }
}, function(error) {
    console.warn(error.code + error.message);
    response.success();
});
})

PS我已經使用該功能很長時間了,不記得從哪里得到它,但是我自己沒有寫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM