ios - 通过推送通知唤醒后台 IOS 应用程序并使用核心蓝牙与另一个 ios 设备交换数据
问题描述
我正在开发应用程序,其中应用程序可以在前台和后台同时充当中央和外围设备。通过使用状态保存和恢复可以正常工作。
现在下一个要求就像两个应用程序(中央和外围设备)都在附近,但只有在后端触发推送通知时才应该自动连接。
因此,一旦推送通知到达,应用程序应该唤醒,开始作为 Peripheral 进行广告宣传,Central 寻找具有固定服务 UUID 的外围设备。
我试图通过推送通知来初始化应用程序唤醒的外围和中心角色,但它永远不会相互连接并交换数据。
所以问题是我如何通过推送通知来实现这个唤醒应用程序,然后将其他 iphone 的外围设备和其他 iphone 的中心连接到当前的 iphone 并交换数据。
在这里,我试图在通知到达时唤醒应用程序:
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any],fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
localPeripheralManager = PeripheralManager(delegate: self) localCentralmanager = CentrallManager(delegate: self) completionHandler(UIBackgroundFetchResult.newData) }
解决方案
推荐阅读
- javascript - Vue 3 上的路由器视图无法捕获来自子级的事件
- r - 以特殊方式获取长格式
- python - 学生ID的数据框组
- java - 我创建了一个类,我还想创建一个接口来插入值而不是代码本身。我怎样才能做到这一点?
- python - Mass DM 机器人工作正常,现在它不会发送消息
- tensorflow - 如何连接两个在一个维度上大小相同但在另一个维度上大小不同的张量流张量?
- flutter - 当应用程序热重启时,列的子项的长度加倍
- django - 我应该为每个页面创建一个应用程序吗?(姜戈)
- facebook - 使用 facebook api,我如何获取通过从我的网站共享内容创建的帖子的帖子 ID?
- c# - 如何反序列化这个 JSON 对象?