【发布时间】:2014-08-07 15:57:10
【问题描述】:
我制作了一款具有推送通知功能的通用应用程序。相信你读到这里也会感到惊讶。
在生产版本(应用商店构建)中,我在 iPad 上收到推送消息,而我在 iPhone 上没有收到此类通知。
应用程序是为通用而构建的,因此当然代码与 Appdelegate 相同,iPad 和 iPhone 也相同。
自从去年 4 年以来,我一直在制作 iOS,从未遇到过这样的问题。
一件事是确保我的推送通知实现是正确的,否则我将永远不会在我的 iPad 上收到推送消息。
任何帮助????
谢谢, 帕特
修改:
请检查下面的 PHP 代码,相同的代码(复制/过去)适用于我的另一个应用程序,但它不会。 再次,如果我在单个设备上发送推送,我将在所有设备上接收,但如果我尝试使用循环发送到所有设备,我只会在一个设备上接收。 (可能是表格的第一行)
$payload = json_encode($body);
for($i = 0; $i<count($deviceTokens); $i++) {
$msg = chr(0) . pack("n",32) . pack('H*', str_replace(' ', '',$deviceTokens[$i])) . pack("n",strlen($payload)) . $payload;
fwrite($fp, $msg);
}
fclose($fp);
在这里我将 echo 放入 for 循环中,我得到了所有注册设备。
【问题讨论】:
-
您确定要分别发送给两者吗?
-
您是否正在向每个设备令牌发送消息?
-
是的,发送到所有设备,甚至在我的其他 iPad 上收到
-
我认为这不是 Apple 方面的问题,这一定是 PHP 服务器端的编码问题。从 MySql 我已经用我的 iPhone 令牌替换了我的 DeviceToken(iPad),现在我在我的手机上收到了,而不是在我的 iPad 上。我在想的是它只需要第一张唱片。因此,我对其进行了调试,并再次感到惊讶,它不仅需要一个,而且可以按预期工作/表现。
-
知道了,它可能会出现 DeviceToken 问题,无论如何,如果您获得另一个应用程序设备令牌(如果您复制过去的代码通常会发生这种情况),那么就会出现这种问题。我通过简单地从数据库中删除所有设备令牌来修复它。
标签: php ios ipad push-notification