当前位置: 首页 > news >正文

【iMessage频發软件苹果群发技术开源原创】当 APNs 发送通知到一个离线设备时,APNs 会把通知存储起来(一定的时间内),当设备上线时再递送给设备。

推荐内容IMESSGAE相关

作者✈️@IMEAE推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息
作者✈️@IMEAE推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息
作者✈️@IMEAE推荐内容2.相册推 *** 点击即可查看作者要求内容信息
作者✈️@IMEAE推荐内容3.日历推 *** 点击即可查看作者要求内容信息
作者✈️@IMEAE推荐内容4.虚拟机安装简单 *** 点击即可查看作者要求内容信息
作者✈️@IMEAE推荐内容5.iMessage *** 点击即可查看作者要求内容信息

以下示例中,我会使用 Python 语言作为示范,展示如何建立与 APNs 的连接、创建推送请求以及处理推送响应。请注意,这是一个基于 HTTP/2 协议的示例。

在实际情况中,您需要根据您使用的编程语言和库进行相应的调整。
在这里插入图片描述

建立与 APNs 的连接:
使用 Python 的 http2 库来建立与 APNs 的连接。首先,您需要准备您的证书和密钥。
Ns (Apple Push Ontification service) 服务是远程通知的核心。该服务健全、安全、高效,开发者可以方便的向 iOS tvOS macOS 终端设备推送通知。

当应用在用户设备上运行的时候会在用户设备和 APNs 之间建立一个安全的数据交互连接。应用通过该连接接收通知。在下面的一节中说明

作者✈️@IMEAE推荐内容 |iMessage苹果推软件 *** 点击即可查看作者要求内容信息
作者✈️@IMEAE推荐内容 |1.家庭推内容 *** 点击即可查看作者要求内容信息
作者✈️@IMEAE推荐内容 |2.相册推 *** 点击即可查看作者要求内容信息
另一半的连接是发送通知的连接,是在你的服务器与 APNs 之间的固定连接,需要在你的开发者帐户中用苹果提供的加密证书配置。本质上讲,信息提供者是一个服务器,是由你配置及部署的,需要你来写服务端的功能。下图显示远程通知的传递过程:

当服务器和手机应用中都配置好了之后,此时服务器可以向 APNs 发送推送请求。APNs 接收并向每个目标设置发送对应的通知信息。在终端设备(iOS macOS tvOS)接收到通知之后,系统把信息传递能你的应用,并管理用户与通知的交互。
在这里插入图片描述

APNs 的服务质量组件可以实现存储然后发送的功能。当 APNs 发送通知到一个离线设备时,APNs 会把通知存储起来(一定的时间内),当设备上线时再递送给设备。这个存储功能只存储一个设备的一个app的最近的通知。如果设备离线中,发送一个到该设备的通知会消除前面存储的通知。如果设备处于离线太久,所有存储的发往该设备的通知都将被消除。
#include
python
Copy code
import http2
import ssl

apns_host = “api.push.apple.com”
apns_port = 443
certificate_path = “/path/to/your/certificate.pem”
private_key_path = “/path/to/your/private-key.pem”

ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
ssl_context.load_cert_chain(certfile=certificate_path, keyfile=private_key_path)

connection = http2.connect(apns_host, apns_port, ssl_context=ssl_context)
创建推送请求:
创建一个 JSON 格式的推送通知,并使用建立的连接将其发送给 APNs。

python
Copy code
import json

device_token = “your-device-token”
notification = {
“aps”: {
“alert”: {
“title”: “Your Title”,
“body”: “Your Message”
},
“sound”: “default”,
“badge”: 1
}
}在这里插入图片描述

作者✈️@IMEAE推荐内容 |3.日历推 *** 点击即可查看作者要求内容信息
作者✈️@IMEAE推荐内容 |4.虚拟机安装简单 *** 点击即可查看作者要求内容信息
作者✈️@IMEAE推荐内容 |5.iMessage *** 点击即可查看作者要求内容信息

headers = {
“:method”: “POST”,
“:scheme”: “https”,
“:path”: f"/3/device/{device_token}“,
“authorization”: f"bearer {bearer_token}”, # Your bearer token
“content-type”: “application/json”,
“apns-push-type”: “alert”
}

stream = connection.request(headers, body=json.dumps(notification))
处理推送响应:
通过读取从 APNs 返回的响应来处理推送的结果。

python
Copy code
response = connection.get_response(stream)

if response.status == 200:
print(“Push notification successfully sent”)
else:
print(f"Failed to send push notification. HTTP status: {response.status}")
这个示例展示了如何使用 Python 中的 http2 库建立与 APNs 的连接,创建推送请求以及处理推送响应。但请注意,这是一个简化的示例,实际应用中您可能需要处理更多细节,例如错误处理、重试机制等。

对于完整的代码示例和更多细节,您可能需要查阅 APNs 的官方文档和相关的开发资源,以确保您的实现是准确和安全的。

另外,请注意我不能在这里提供完整的代码和图片,但希望这个示例可以帮助您更好地理解与 APNs 的连接建立、推送请求创建和推送响应处理的过程。

http://www.lryc.cn/news/126988.html

相关文章:

  • 【数据结构】_8.二叉树OJ
  • 酷开系统 | 酷开科技大数据,更好的与目标消费人群建立联系
  • 无涯教程-Perl - study函数
  • dfs深度搜索入门之滑雪
  • Python程序设计——元组、集合和字典
  • 八股文之框架篇(Spring Boot、SSM)
  • [PaddlePaddle] [学习笔记] [上] 计算机视觉(卷积、卷积核、卷积计算、padding计算、BN、缩放、平移、Dropout)
  • 【JS 贪心算法常见步骤】
  • 应用案例|基于三维机器视觉的机器人纸箱拆码垛应用解决方案
  • 【ARM 嵌入式 编译 Makefile 系列 10 - Makefile sort 函数详细介绍】
  • Flask下载文件报错304 NOT MODIFIED
  • AI Chat 设计模式:15. 桥接模式
  • Python批量替换Excel和Word中的关键字
  • Codeforces算法心得——A. Array Coloring
  • 论文阅读:《Waymo Public Road Safety Performance Data》
  • url中的特殊符号及特殊字符编码对照表
  • 【C++】详解用标准库的std::mt19937生成随机数
  • 科大讯飞发布星火认知大模型2.0版——体验实测
  • 部署mysql到win10电脑上
  • nginx+php 出现502 bad gateway
  • 基于LVQ神经网络的人脸朝向识别
  • Leetcode Top 100 Liked Questions(序号53~74)
  • Rabbitmq消息不丢失
  • Kotlin runBlocking launch多个协程读写mutableListOf时序
  • Spring Cloud微服务治理框架深度解析
  • 设计模式之原型模式Prototype的C++实现
  • Java 中操作 Redis
  • 数据结构--最短路径 Dijkstra算法
  • 在 Linux 虚拟机上使用 Azure 自定义脚本扩展版本
  • W5500-EVB-PICO 做UDP Server进行数据回环测试(七)