Apple推送通知服务是Apple Inc.与iOS 3.0一起创建的服务.APNS与Mac OS X Lion Server一起用于将更新通知推送到已注册通过配置文件接收更新的客户端,并且使用服务器的邮件,日历和联系人服务。这意味着iPhone等设备和Mac上的iCal等应用程序都可以收到通知
我正在尝试将 APNs 证书导出为 .p12 文件。 但是,在我双击 .cer 文件后,我在“我的证书”下找不到它,并且不允许我将其导出为 .p12 文件(但是 .c...
Safari(MacBook 和 iPhone)上的 Angular 推送通知问题
我正在尝试向我的 Angular 应用程序添加推送通知,并且我已成功在 Chrome、Firefox 和 Edge 上实现了它。但是,我在 iPhone 和 MacBook 上都遇到了 Safari 问题。
使用 firebase 在我的 flutter 应用程序中接收双推送通知
我在我的 flutter 应用程序中收到推送通知并使用 firebase。当通过 firebase 发送时,我只收到一次,当通过后端服务器发送时,我收到两次。 我正在使用 f...
为什么微信可以做到这一点? APNS推送可以在后台唤醒父App吗?
为什么微信可以使用PUSH通知在后台激活应用程序?甚至激活用户关闭的应用程序? 我知道微信使用通知服务,但是无法激活
我想找到一些有关如何在 iOS 中实现本地推送连接的教程。我在Apple论坛、文档中进行了研究......我只找到了Apple提供的SimplePush示例。与...
我刚刚听说iPhone可以实现“推送通知” 我需要以下详细信息。 什么是推送通知? 它是如何运作的? 它需要什么? 任何示例代码链接都可用...
我已将 liveActivity 集成到我的项目中,它确实显示在锁定屏幕上,我可以通过下面的脚本使用“event”:“update”来更新它,但我无法通过“...”关闭它
新的 Firebase HTTP v1 iOS JSON 负载通知语法示例
我看过一堆帖子,包括与此相关的问题,但没有真正语法的示例。以下是我的传统 Apple 静默通知的示例: { “到&q...
当应用程序位于前台且带有 Firebase 推送通知时没有通知
当应用程序处于后台时我会收到通知,但当应用程序处于前台时则不会收到通知。我完全按照这里所说的那样做了。我做错了什么? func userNotificationCenter(_ 中心:
如何在 Firebase 中专门检索 FCM 令牌之前的 APN?
在遇到错误之前,我使用的是安装了 Firebase 的 Xcode。今天中午 12 点左右,我开始遇到如下错误 检索之前未设置 APNS 设备令牌...
我没有更改我的代码和网络面板中的任何内容。以前,我的通知运行没有问题。 5-6 天推送通知不起作用,我正在尝试手动发送(来自
Apple 在本地和推送通知编程指南中指出 重要提示:在 iOS 中,仅当存在 Wi-Fi 时,才会使用 Wi-Fi 来推送通知 没有蜂窝网络连接或者设备是 iPod touch....
intercom_flutter 8.1.3 iOS 推送通知不起作用
我们正在将对讲机集成到我们的 Flutter 应用程序中。在他们的官方开发者网站上,没有 Flutter SDK。但是 pub.dev intercom_flutter 上有一个,看起来非常有用且很好
向不同 PassTypeID 的钱包通行证发送 Apple 推送通知
我有一个网络应用程序,可以为 iOS 创建苹果钱包通行证。 过程或多或少看起来像这样: 用户提供了他的 Apple Pass ID 和来自苹果开发者的证书,基于我的证书
在使用 Flutter 的 iOS 中,在终止或后台状态下未收到 flutter_callkit_incoming 通知
Flutter 传入 Callkit 通知在我的 iOS 应用程序上的所有状态(前台/后台/终止)下都运行良好。 在 iOS 设备上,问题是当我的应用程序处于后台或终止状态时......
当我需要发送一个通知时,我的代码工作正常,但每次当我需要发送多个通知时,它只发送第一个通知。这是代码: 当我需要发送一个通知时,我的代码工作正常,但每次当我需要发送多个通知时,它只发送第一个通知。这是代码: <?php $device_token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; $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, 60, STREAM_CLIENT_CONNECT, $streamContext); $payload['aps'] = array('alert' => 'some notification', 'badge' => 0, 'sound' => 'none'); $payload = json_encode($payload); for($i=0; $i<5; $i++) { $apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $device_token)) . chr(0) . chr(strlen($payload)) . $payload; fwrite($apns, $apnsMessage); }?> 我做错了什么? 提前谢谢, 姆拉乔 您应该只打开与 apns 的连接一次。现在你正在循环中打开它,这是错误的。我还使用稍微不同的方案来构建我的消息。你应该这样做: $apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 60, STREAM_CLIENT_CONNECT, $streamContext); for($i=0; $i<5; $i++) { $apns_message = chr(0).pack('n', 32).pack('H*', $device_token).pack('n', strlen($payload)).$payload; fwrite($apns, $apnsMessage); }?> 另请注意,苹果建议使用相同的连接来发送所有推送通知,因此您不应在每次有推送通知要发送时都进行连接。 查看以下文档: http://developer.apple.com/library/mac/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CommunicatingWIthAPS/CommunicatingWIthAPS.html#//apple_ref/doc/uid/TP40008194-CH101-SW3 它表示应使用 TCP/IP Nagle 算法在一次传输中发送多个通知。您可以在这里了解 Nagle 算法: http://en.wikipedia.org/wiki/Nagle%27s_algorithm 所以我相信创建消息的代码应该如下所示: // Create the payload body $body['aps'] = array( 'alert' => "My App Message", 'badge' => 1); // Encode the payload as JSON $payload = json_encode($body); // Loop through the token file and create the message $msg = ""; $token_file = fopen("mytokens.txt","r"); if ($token_file) { while ($line = fgets($token_file)) { if (preg_match("/,/",$line)) { list ($deviceToken,$active) = explode (",",$line); if (strlen($deviceToken) == 64 && intval($active) == 1) { // Build the binary notification $msg .= chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload; } } } fclose ($token_file); } if ($msg == "") { echo "No phone registered for push notification"; exit; } 现在打开 TCP 连接并发送消息.... 在黑暗中拍摄。看看你的 for 循环。 看起来您打开了连接并推送了消息...但是该连接会自行关闭吗?您是否需要为每次推送启动一个新连接,从而需要在 while 循环结束时关闭第一个连接,然后才能重新启动另一个连接?
错误: 警告:stream_socket_client():无法启用加密 /home/####/public_html/####/testpushnotification.php 第 28 行 警告:stream_socket_client():无法连接...
提前感谢那些愿意提供帮助的人 当我向单个设备发送推送通知时,我使用这种方法 提前感谢那些愿意提供帮助的人 当我向单个设备发送推送通知时,我使用这种方法 <?php $deviceToken = $_POST['TOKEN']; $message = $_POST['MESSAGGIO']; $badge = 0; $sound = "default"; $body = array(); $body['aps'] = array("alert" => $message); if ($badge) $body['aps']['badge'] = $badge; if ($sound) $body['aps']['sound'] = $sound; $ctx = stream_context_create(); stream_context_set_option($ctx, "ssl", "local_cert", "apns-dev.pem"); $fp = stream_socket_client("ssl://gateway.push.apple.com:2195", $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx); if (!$fp) { echo json_encode("errore"); return; } $payload = json_encode($body); $msg = chr(0) . pack("n",32) . pack("H*", str_replace(" ", "", $deviceToken)) . pack("n",strlen($payload)) . $payload; fwrite($fp, $msg); fclose($fp); ?> 当我必须向数据库中的所有设备发送通知时(当然使用设备令牌),我会考虑这样做 <?php $deviceToken = $_POST['TOKEN']; $message = $_POST['MESSAGGIO']; $badge = 0; $sound = "default"; $body = array(); $body['aps'] = array("alert" => $message); if ($badge) $body['aps']['badge'] = $badge; if ($sound) $body['aps']['sound'] = $sound; $ctx = stream_context_create(); stream_context_set_option($ctx, "ssl", "local_cert", "apns-dev.pem"); $fp = stream_socket_client("ssl://gateway.push.apple.com:2195", $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx); if (!$fp) { echo json_encode("errore"); return; } $payload = json_encode($body); //**** $db = new PDO('sqlite:my_db.sqlite'); $query = "SELECT device_token FROM user"; $result = $db->query($query); foreach($result as $row){ $msg = chr(0) . pack("n",32) . pack("H*", str_replace(" ", "", $row['device_token'])) . pack("n",strlen($payload)) . $payload; fwrite($fp, $msg); } //**** fclose($fp); ?> 您认为这是正确的解决方案吗? 看起来是正确的。您使用相同的连接来发送所有消息,这是发送多个通知时最重要的事情。 但是,您使用的是简单的二进制格式,它不支持错误响应,因此您没有错误处理。假设您的消息从未超过最大有效负载长度并且数据库中的所有设备令牌都有效,则这将起作用。更好的方法是使用增强的二进制格式并读取(和处理)错误响应。
我正在开发一个 iOS 应用程序,在添加 Firebase Cloud Messaging (FCM) 来实现推送通知之前,该应用程序运行良好。 Android端整合后仍然可以完美运行...
Flutter - iOS 中的推送通知在调试模式下出现,但在发布模式下不出现
我目前正在使用 flutter_apns (https://github.com/mwaylabs/flutter-apns) 包在我的 flutter 应用程序中显示 iOS 中的推送警报。在调试模式下一切都工作得很好,但是当我在 r 中测试时......