使用 Parse for iOS 时将设备令牌与特定用户相关联

Associate device tokens with specific user when using Parse for iOS

我们将 Parse 用于 iOS APNS,到目前为止效果很好。但是,我们现在需要将设备令牌与我们应用程序的特定用户相关联。

为此,我们决定将设备令牌保存到我们的服务器,以便它与该用户相关联。但是,这有一些问题:

有没有办法让 Parse API 用用户名标记设备令牌,而不是使用我们的服务器来处理上述情况,这样我们就可以为此提取所有设备令牌用户名并始终将 APNS 发送到该用户的最新设备令牌列表?

这是我想做的事情:

// Store the deviceToken in the current installation and save it to Parse.
PFInstallation *currentInstallation = [PFInstallation currentInstallation];
[currentInstallation setDeviceTokenFromData:self.deviceTokenData];
[currentInstallation setObject:@YES forKey:user.userID];
[currentInstallation saveInBackground];

因此,我将从我们的应用程序中保存带有关联用户 ID 的设备令牌。

或者,Parse API 有没有其他方法可以处理这种情况?

编辑:

添加到下面的答案中,我们将在服务器端使用类似以下内容发送给该用户:

$user_id = // the user ID
$query = ParseInstallation::query();
$query->equalTo("user_id", $user_id);

ParsePush::send(array(
  "where" => $query,
  "data" => array(
    "alert" => "Welcome to the our awesome app!",
    "badge" => 1
  )
));

您可以在安装对象中添加 userId 属性。

[currentInstallation setObject:user.userID forKey:@"userId"];

然后您可以获得安装查询并向该查询发送推送通知:

PFQuery *userQuery = [PFInstallation query];
[userQuery whereKey:@"userId" equalTo:user.userId];
// Send push using this query