[英]Send Parse push notifications to specific users
直截了當,我可以將推送通知從我的應用發送到與該應用具有相同頻道名稱的其他應用。 現在,我的要求是我需要發送給特定用戶。 閱讀有關它的一些文檔,但仍不清楚如何實現。 到目前為止,這是我所做的。
Parse.initialize(this, "xxxxxxxxxxxxxxxxxxxxxxx", "yyyyyyyyyyyyyyyyyyyyy");
ParseInstallation.getCurrentInstallation().saveInBackground();
ParsePush.subscribeInBackground("words");
在按鈕上單擊:
ParseQuery pushQuery = ParseInstallation.getQuery();
pushQuery.whereEqualTo("user", receiver);
ParsePush push = new ParsePush();
push.setQuery(pushQuery);
push.setChannel("words");
push.setMessage(ParseUser.getCurrentUser().getUsername() + " sent you a Gift");
push.sendInBackground();
刪除push.setQuery(pushQuery);
僅在以下情況下,我的解決方案才對您有好處:
您將每個安裝與用戶相關聯: ParseInstallation.currentInstallation.put("user",ParseUser.currentUser)
//search all receiver users
ParseQuery<ParseUser> userQuery = ParseUser.getQuery();
userQuery.whereEqualTo("user", receiver);
userQuery.findInBackground(new FindCallback<ParseUser>() {
public void done(List<ParseUser> users, ParseException e) {
if (users != null && users.size() > 0) {
//now you have all receivers
for (int i = 0; i < users.size(); i++) {
ParseUser user = users.get(i);
//now searching needed channel inside array of receivers
ArrayList<JSONObject> channels = (ArrayList<JSONObject>) user.get("channels");
if (channels.contains("words")){
//here sending the push
ParseQuery<ParseUser> userQuery = ParseUser.getQuery();
ParseQuery<ParseInstallation> installationQuery = ParseInstallation.getQuery();
userQuery.whereEqualTo("user", user);
installationQuery.whereMatchesQuery("user", userQuery);
ParsePush push = new ParsePush();
push.setQuery(installationQuery);
push.setMessage(ParseUser.getCurrentUser().getUsername() + " sent you a Gift");
push.sendInBackground();
}
}
}
}
});
如果您的用戶在具有不同渠道的許多設備中使用相同的帳戶,那么這不是您的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.