来自客户端的推送通知
Push Notification from client
我正在测试推送通知,当我按下应用程序上的按钮时,安装了相同应用程序的所有其他人都会收到推送通知。发送通知的人不会收到任何通知。
我一直在寻找类似的查询,但无法使其正常工作。就推送本身而言,我的日志显示 "Parse push is sent"。但是我没有在我的任何物理设备或模拟器上收到任何通知。
请注意,我正在使用 Parse,并且设置正确,能够从 Parse.com 站点发送通知。仅在尝试从客户端设备发送时遇到问题。
我是否应该为此明确创建频道和用户?我试过了,但只能选择创建有条件的观众。
public void sendParse(View view){
try {
// Associate the device with a user
ParseInstallation installation = ParseInstallation.getCurrentInstallation();
installation.put("user", ParseUser.getCurrentUser());
installation.saveInBackground();
ParseQuery pushQuery = ParseInstallation.getQuery();
pushQuery.whereEqualTo("channels", "Everyone");
pushQuery.whereNotEqualTo("user", ParseUser.getCurrentUser());
pushQuery.whereEqualTo("user", ParseUser.getCurrentUser());
ParsePush push = new ParsePush();
push.setQuery(pushQuery);
push.setMessage("Testing 1 2 3...");
push.sendInBackground(new SendCallback() {
@Override
public void done(ParseException e) {
Log.i("zx", "Push is sent!");
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
在你的代码中
pushQuery.whereNotEqualTo("user", ParseUser.getCurrentUser());
pushQuery.whereEqualTo("user", ParseUser.getCurrentUser());
这两行不兼容,您应该删除 "whereEqualTo" 行。
你可以做的另一件事是在回调中:
...
public void done(ParseException e){
if(e!=null)
e.printStackTrace();
...
}
检查是否有错误
我正在测试推送通知,当我按下应用程序上的按钮时,安装了相同应用程序的所有其他人都会收到推送通知。发送通知的人不会收到任何通知。
我一直在寻找类似的查询,但无法使其正常工作。就推送本身而言,我的日志显示 "Parse push is sent"。但是我没有在我的任何物理设备或模拟器上收到任何通知。
请注意,我正在使用 Parse,并且设置正确,能够从 Parse.com 站点发送通知。仅在尝试从客户端设备发送时遇到问题。
我是否应该为此明确创建频道和用户?我试过了,但只能选择创建有条件的观众。
public void sendParse(View view){
try {
// Associate the device with a user
ParseInstallation installation = ParseInstallation.getCurrentInstallation();
installation.put("user", ParseUser.getCurrentUser());
installation.saveInBackground();
ParseQuery pushQuery = ParseInstallation.getQuery();
pushQuery.whereEqualTo("channels", "Everyone");
pushQuery.whereNotEqualTo("user", ParseUser.getCurrentUser());
pushQuery.whereEqualTo("user", ParseUser.getCurrentUser());
ParsePush push = new ParsePush();
push.setQuery(pushQuery);
push.setMessage("Testing 1 2 3...");
push.sendInBackground(new SendCallback() {
@Override
public void done(ParseException e) {
Log.i("zx", "Push is sent!");
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
在你的代码中
pushQuery.whereNotEqualTo("user", ParseUser.getCurrentUser());
pushQuery.whereEqualTo("user", ParseUser.getCurrentUser());
这两行不兼容,您应该删除 "whereEqualTo" 行。
你可以做的另一件事是在回调中:
...
public void done(ParseException e){
if(e!=null)
e.printStackTrace();
...
}
检查是否有错误