解析推送通知测试PFInstallation不工作

时间:2016-01-11 17:21:00

标签: ios objective-c parse-platform push-notification pfinstallation

我是一名客观的编码器,试图在解析中使用推送通知。

我在appDelegate.m文件的didFinishLaunchingWithOptions部分添加了Parse setApplicationID和Client Key。然后我添加了这两种方法:

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {

// Store the deviceToken in the current installation and save it to Parse.
PFInstallation *currentInstallation = [PFInstallation currentInstallation];
[currentInstallation setDeviceTokenFromData:deviceToken];
currentInstallation.badge = 0;
NSArray *channels = [NSArray arrayWithObjects:@"global", [DataSource sharedInstance].userProfile.userID, nil];
[currentInstallation addObjectsFromArray:channels forKey:@"channels"];
[currentInstallation saveInBackground];
}

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
[PFPush handlePush:userInfo];
}

每当currentInstallation.badge数字发生变化时,应用程序上的徽章编号都会响应,当我断开代码时,它会显示已将通道添加到currentInstallation。

问题是当前安装没有保存在Parse数据库的Core Installation对象部分中。在saveInBackground运行后,我添加到currentInstallation的通道不会出现。

在调试问题时,我删除了Core Installation数据库中与我用于测试的设备相对应的行(这是Core Installation数据库中唯一的对象)。当我重新运行代码时,没有任何东西被添加。

另外一条信息是,我非常确定我正确设置了所有设置内容,因为在设置完所有内容之后,我能够在设备上接收测试推送通知。问题是我无法以编程方式更改我的测试设备在核心安装数据库上订阅的频道。

基本上我的问题是:如何使用PFInstallation saveInBackground将项目写入核心安装数据库?我做错了什么?

感谢您的帮助!我真的很感激!

修改 现在还有一个问题是,我无法将我测试推送通知的设备添加回我的Core Installations对象数据库,因此我仍然在数据库中的0个对象。关于如何取回它的任何建议?

1 个答案:

答案 0 :(得分:0)

这太令人沮丧了。我所要做的就是退出我的Parse帐户,然后重新登录。瞧!渠道在那里!