我想从Python代码(Django应用程序)向客户端的手机发送推送通知。
我找到了几个实现,其中一个是:http://leepa.github.com/django-iphone-push/
我的问题是 - 如何识别我要向其发送通知的设备?我应该使用手机的UDID吗?我担心它已经在iOS5中被弃用了,所以我想知道如何在Django服务器中将用户与手机联系起来?
答案 0 :(得分:2)
Apple只允许您向安装了iOS应用程序的设备发送通知,并且用户已允许您的应用向其设备发送通知。您可以在this developer document中找到有关Apple如何处理(推送)通知的更多信息。
如果您没有iOS应用程序但仍希望向用户发送通知,则可以考虑使用Prowl,Notifio或Boxcar。这些应用程序允许您使用其API将通知发送到用户设备。对于大多数这些服务,它们都是可用的Python包。
答案 1 :(得分:1)
来自文档:
注意:设备令牌与UIDevice的uniqueIdentifier属性返回的设备UDID不同。
通过在应用程序中注册远程通知来获取使用的令牌:didFinishLaunchingWithOptions:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// ...
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
// ...
}
如果注册成功,您的应用代表将收到应用:didRegisterForRemoteNotificationsWithDeviceToken:
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
NSString *deviceTokenStr = [[[[deviceToken description]
stringByReplacingOccurrencesOfString: @"<" withString: @""]
stringByReplacingOccurrencesOfString: @">" withString: @""]
stringByReplacingOccurrencesOfString: @" " withString: @""];
NSLog(@"%@", deviceTokenStr);
}
这是您用来发送推送通知的令牌。
P.S。:django-iphone-push last commit是3年前。您可以尝试我的名为django-ios-push的分叉。