我应该如何在sql数据库上存储iOS设备令牌?

时间:2012-07-18 16:10:06

标签: mysql ios token apple-push-notifications

我正在制作一个接收推送通知的iOS应用。一切都设置正确,我已经做好了。我测试它的方法是在发送通知的.php文件中手动输入我自己手机的设备令牌。我知道我需要建立一个存储所有设备令牌的SQL数据库。我也知道我必须在Xcode中的dedRegisterForRemoteNotificationWithDeviceToken中“调用”这个网站。我知道如何做到这一切,但我不知道如何为数据库中的实际令牌创建字段,以及如何正确解析它。

如果我没记错的话,当我退出设备令牌时,我会得到类似“< xxxx xxxx xxxx xxxx>”的内容。我想我必须将其解析为“xxxxxxxxxxxxxxxx”。

我确定我会弄清楚这一点。我的主要问题是,令牌列应该是什么类型的? INT? VARCHAR?我可以说它是某种类型的十六进制,但我不知道如何在数据库中进行此操作..

我正在考虑使用(TokenID int AUTO_INCREMENT,Token(??)UNIQUE)设置表;

我不需要用户或任何东西..只是令牌(TokenID只是我的标准程序..)。这是一种为某个字段指定的“新闻”通知。任何人都知道我的令牌值应该是什么类型?也许还有如何从“< x-x-x>”解析它到“xxx”

3 个答案:

答案 0 :(得分:5)

我在这里找到了一个例子:http://www.easyapns.com/mysql-tables

 `devicetoken` char(64) NOT NULL,

答案 1 :(得分:3)

正确的方法是将值存储为BINARY(32)并使用MySQL函数UNHEX和HEX来存储和检索值。

INSERT INTO devices SET devicetoke=UNHEX('$token'), ...

UPDATE devices SET badgecount=badgecount+1 WHERE devicetoken=UNHEX('$token')

SELECT HEX(devicetoken) AS token FROM devices WHERE ...

答案 2 :(得分:0)

BINARY(32) NOT NULL UNIQUE怎么样?