快速使用APNS通知

时间:2018-09-19 14:14:15

标签: php ios swift openssl apple-push-notifications

iOS 11.x Swift 4.0

是的,我知道有很多解决方案可以为您发送推送通知,但是我正在寻找一个本机解决方案。

现在,我设法将一些可以工作的PHP代码放在一起,在其中构造一个APNS有效负载,然后将其打包到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]?

How should Secure Transport TLS be used with BSD sockets in Swift?

我现在不在我的深度了吗?迫切需要指向正确路径的帮助/指针吗?

0 个答案:

没有答案
相关问题