我会做什么,我做了什么。
如果要将ID存储在数据库中,应该很容易区分两者。如果您将它们保留在同一个表格但不同的字段中,那么只需使用不同的名称作为列。 根据设备类型保存ID。只是没有推送通知ID使用两个通用列。我根据类型和用户的成员ID保存设备ID。所以即使他们注册了多个设备,它也会将它发送给所有的设备android或ios。或者我可以选择全部并发送给每个注册用户。
以下是一些示例。一个示例使用多个id列,另一个使用单个id列与另一列进行类型化。
gcm_id
和apn_id
作为数据库中的列名,其中的密钥存储为一个用于android和iOS的一个。
然后,当您准备发出通知时,您可以根据所需的任何标准进行选择查询。
例如要发送给一大群用户,您可以执行以下操作。简单的例子不完整的代码。
$result = "SELECT * FROM notification_table"
然后用一些PHP遍历数组并发出通知。
foreach($result as $key=>$id){
if($key == "gcm_id"){
//do android push here using the $id or run a function passing $id to it
}elseif($key == "apn_id"){
//do apple push here using the $id or run a function passing $id to it
}
}
或者另一个选项是保存设备类型并使用一个ID字段。所以你的桌子可能有类似的东西
push_id | dev_type | member_id
当把它保存到数据库时,一定要指定设备类型。这可能是你想要的。可能是一个文本/字符变化,甚至是一个整数字段,您可以为每种类型指定一个数字ID。但是你想跟上它。我可能会随字符变化而使用android/ios
作为值,这样我就比代码更容易记住。
然后按照设备类型进行除滤波之外的操作。
$result = "SELECT * FROM notification_table"
然后用一些PHP遍历数组并发出通知。
foreach($result as $res){
if($res["dev_type"] == "android"){
//do android push here using the $res["push_id"] or pass it to a function
}elseif($res["dev_type"] == "ios"){
//do apple push here using the $res["push_id"] or pass it to a function
}
}
或限制它给某个用户说新的私人信息。没有完整的代码示例
$result = "SELECT * FROM notification_table WHERE mem_id='12345'";
然后调用一个函数或者你想要处理它。
我个人会创建两个函数,一个用于GCM,一个用于APN。然后根据类型在通过foreach循环时调用函数。示例函数传递ID和消息发送。
function push_gcm($id,$message){
//do stuff
}
function push_apn($id,$message){
//do stuff
}
我个人不会依赖像ID长度或类似的东西来确定类型。用上面的例子之一保存带ID的类型。希望这对一些人有帮助,并给你一个排序的开始。