从Python代码发送苹果推送通知

1 投票
2 回答
4409 浏览
提问于 2025-04-17 10:50

我想从Python代码(Django应用)给客户的手机发送推送通知。

我找到了一些实现方法,其中一个在这里:http://leepa.github.com/django-iphone-push/

我想问的是——我该如何识别我发送通知的设备呢?我应该使用手机的UDID吗?我有点担心,因为在iOS5中这个已经不再使用了,所以我想知道如何在我的Django服务器上将用户和手机关联起来?

2 个回答

1

根据文档:

注意:设备令牌和UIDevice的uniqueIdentifier属性返回的设备UDID是不同的东西。

你需要通过在application:didFinishLaunchingWithOptions:中注册远程通知来获取这个令牌。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // ...
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
    // ...
}

如果注册成功,你的应用代理会收到application:didRegisterForRemoteNotificationsWithDeviceToken:这个回调。

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
    NSString *deviceTokenStr = [[[[deviceToken description]
                                  stringByReplacingOccurrencesOfString: @"<" withString: @""] 
                                 stringByReplacingOccurrencesOfString: @">" withString: @""] 
                                stringByReplacingOccurrencesOfString: @" " withString: @""];
    NSLog(@"%@", deviceTokenStr);
}

这个令牌就是你用来发送推送通知的。

附注:django-iphone-push最后一次更新是在3年前。你可以试试我修改过的版本,叫做django-ios-push

2

苹果只允许你向那些安装了你的iOS应用程序的设备发送通知,并且用户必须允许你的应用向他们的设备发送通知。你可以在这个开发者文档中找到更多关于苹果如何处理(推送)通知的信息。

如果你没有iOS应用程序,但仍然想向用户发送通知,你可以考虑使用Prowl、Notifio或Boxcar。这些应用允许你使用他们的API将通知发送到用户的设备。对于大多数这些服务,已经有Python的包可以使用。

撰写回答