1

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

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

我的问题是 - 如何识别我发送通知的设备?我应该使用手机的 UDID 吗?我担心它在 iOS5 中已经被弃用,所以我想知道如何将用户与我的 Django 服务器中的电话联系起来?

4

2 回答 2

2

Apple 只允许您向安装了 iOS 应用程序且用户允许您的应用程序向其设备发送通知的设备发送通知。您可以在此开发者文档中找到有关 Apple 如何处理(推送)通知的更多信息。

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

于 2012-01-22T13:09:55.307 回答
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);
}

这是您用来发送推送通知的令牌。

PS:django-iphone-push 上次提交是 3 年前。你可以试试我的名为django-ios-push 的叉子。

于 2012-02-28T10:59:56.583 回答