有没有办法为iOS设备发送特定于用户的推送通知?

时间:2014-07-15 08:04:57

标签: ios objective-c node.js push-notification apple-push-notifications

我想知道我是否可以创建服务来为iOS发送自定义的用户特定推送通知。

实施例

  

@“Hey%@,你好吗”,firstName“

这可能吗?

5 个答案:

答案 0 :(得分:1)

除非我完全误解了你的需要,否则没有答案符合你的需要。

以下是APNS guide

的相关示例

让我们考虑一个例子。提供程序将以下字典指定为alert属性的值:

{ "aps" : 
  {
    "alert" : {
        "loc-key" : "GAME_PLAY_REQUEST_FORMAT",
        "loc-args" : [ "Jenna", "Frank"]
    }
  }
}
  

当设备收到通知时,它使用“GAME_PLAY_REQUEST_FORMAT”作为键来查找当前语言的.lproj目录中Localizable.strings文件中的关联字符串值。假设当前本地化具有Localizable.strings条目,例如:

     

“GAME_PLAY_REQUEST_FORMAT”=“%@和%@邀请您玩垄断”;

     

设备会显示一条警告,其中包含“Jenna和Frank邀请您玩垄断”的消息。

答案 1 :(得分:0)

当然。查看APNS编程指南,特别是有效负载,您可以在将其发送到用户设备之前在服务器上进行自定义。

https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html

另请注意,如果您知道通知何时出现(而不是在动态时间),那么请查看本地通知,这些通知不需要服务器后端。

答案 2 :(得分:0)

对于使用APNS的iOS推送通知服务,有一些非常好的解决方案。无需自己实施。

  • PushApps - 每月免费提供1M次通知,每月19.99次无限制通知,您可以通过API导入用户或发送csv文件 - documentation
  • Urban Airship - 每月免费提供1M次通知,之后每1000次通知收费
  • Parse - 对于前1M个通知也免费
  • PushWoosh - 免费提供1M设备,优惠计划为39欧元

如果你必须自己实现它,如果你想自己托管它,请查看easyAPNS

另一个很好的信息网站是Ray Wenderlich的网站,其中包含2部分教程:

this,用于Node.js的Apple推送通知模块。

答案 3 :(得分:0)

您可以将任何服务用于推送通知(如所列出的)或自行完成。

在您的代码中,当您收到推送通知消息时:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    NSLog(@"Received notification: %@", userInfo);
    //here you should treat your received data
}

答案 4 :(得分:0)

当然可以......

您需要为推送通知服务创建自己的后端php文件,您可以将json数据从您的应用程序发送到php文件并使用$GET来获得您想要的数据,包括设备令牌,消息,徽章编号......请参阅this

在viewController中

NSString *finalUrl =[NSString stringWithFormat:@"%@/pushService.php?device_token=%@&passphrase=%@&msg=%@",baseURL,device_token,passphrase,msg];
NSURL *url  =[NSURL URLWithString:finalUrl];
NSData *jsonData = [NSData dataWithContentsOfURL:url];

if(jsonData != nil)
{
    NSError *error = nil;
    NSDictionary *result = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
    NSLog(@"result: %@", result);

}else
{
    NSLog(@"connection error!");
}

pushService.php文件

// Put your device token here (without spaces):
$deviceToken = $GET['device_token'];

// Put your private key's passphrase here
$passphrase = $GET['passphrase'];

// Put your alert message here:
$message = $GET['msg'];

$body['aps'] = array(
    'alert' => $message,
    'sound' => 'default',
    'badge' =>  5 
);