php - 使用 swift 的 APNS 通知
问题描述
iOS 11.x 斯威夫特 4.0
是的,我知道有几十种解决方案可以为您发送推送通知,但我希望创建一个本地解决方案。
现在我设法将一些有效的 PHP 代码放在一起,在其中我构建了一个 APNS 有效负载,然后将其打包到 Apple,当然 Apple 会将其发送给我的客户。它只有 10 行代码,但现在我需要将其转换为 Swift。
$payload='{
"aps": {
"alert":{
"title": "Yo",
"body":"Stay Cool" },
"badge":99,
"category":"new.category",
"sound": "default"
},
"misc": "tag"
}';
$apnsHost = 'gateway.push.apple.com';
$apnsPort = 2195;
$apnsCert = 'apns-dev.pem';
$deviceToken = '7effd4dfc158d922c867c1e3c99fd46296e2b1afcd080a63a2da398bce1c9bb3';
$apnsHost = 'gateway.sandbox.push.apple.com';
$apnsPort = 2195;
$apnsCert = 'apns-dev.pem';
$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);
$apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext);
echo $error;
$apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $deviceToken)) . chr(0) . chr(strlen($payload)) . $payload;
fwrite($apns, $apnsMessage);
?>
我在 SO 上找到了这个答案,看起来像我的男人,但是没有……没有证书 [.pem] 在那里吗?
Swift 中的 BSD 套接字应该如何使用安全传输 TLS?
我现在已经超出了我的深度?迫切需要任何指向正确路径的帮助/指针吗?
解决方案
推荐阅读
- c# - 使用 HotChocolate 从 UserManager 获取用户
- android - 如何动态更改文本小部件的文本和颜色/按钮的小部件文本和颜色?
- java - 将 SQLBatch 与流利的 API 一起使用?
- python - 如何修复pyqt_graph中plot_widget中plot_item的空间/填充
- typescript - 在 TypeScript 中推断函数参数的参数
- openstack - Openstack、devstack 网络问题
- php - 自定义古腾堡调色板 - 一种颜色未显示在前端
- html - 如何使用 CSS 创建 3 列多边形容器
- python - 在 Python 中实现正则表达式以替换文本文件中每次出现的“meshname = x”
- bert-language-model - 权重和偏差 - 训练 BERT 时如何解释图表