PHP:如何向 Apple 设备发送推送通知
Posted
技术标签:
【中文标题】PHP:如何向 Apple 设备发送推送通知【英文标题】:PHP: how to send push notifications to Apple device 【发布时间】:2016-03-25 11:32:39 【问题描述】:我们的 ios 应用应该会收到推送通知。按照this 教程,我在应用程序委托中实现了这些方法:
didRegisterForRemoteNotificationsWithDeviceToken
和
didFailToRegisterForRemoteNotificationsWithError
由didFinishLaunchingWithOptions
调用,似乎该设备已在我们的 mysql 服务中正确注册。此外,我刚刚创建了一个用于测试的 pem 沙盒认证。现在,我需要知道我应该在 php 的后端做什么。需要哪个代码?我们正在使用 Zend 框架,所以我应该在我的映射器中实现function preparetosend_apple()
,在我们的控制器中实现sendtoappleAction()
,但我不知道从哪里开始以及如何测试它。谢谢!
【问题讨论】:
framework.zend.com/manual/1.12/en/zend.mobile.push.apns.html 谢谢老哥,我去看看! 【参考方案1】:第一件事是直接从应用程序发送推送通知不是一个好主意,因为此调用可能会阻塞一个调用(意味着代码块的其余部分将等待其完成)。所以我建议使用后台处理器/消息队列服务(如 gearman、zero mq 等)。
第二个最简单的解决方案是使用类似Parse 的服务。 Parse 允许使用您提到的证书注册应用程序,并具有适用于 php 的 SDK(基于作曲家)。
在后台服务中,您只需从 SDK 调用 API。喜欢:
use Parse\ParseClient;
use Parse\ParseInstallation;
use Parse\ParsePush;
ParseClient::initialize($appId, $restKey, $masterKey, $curlDebug);
...
...
...
在解析中使用通道
$response = ParsePush::send(array(
"channels" => ["channel-$userId"],
"data" => $data,
));
或者使用自定义查询
$query = ParseInstallation::query();
$query->equalTo('userId', "user-$userId");
$response = ParsePush::send(array(
"where" => $query,
"data" => $data,
));
使用解析的最佳部分 - 我会说使用其他有趣的功能,例如广播消息、设备列表等。
希望对您有所帮助。
【讨论】:
以上是关于PHP:如何向 Apple 设备发送推送通知的主要内容,如果未能解决你的问题,请参考以下文章
Web 应用程序如何向 iOS 设备发送推送通知? [关闭]