首页 > 解决方案 > 通过推送通知唤醒后台 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)
}

标签: iosswiftbluetooth-lowenergyapple-push-notificationscore-bluetooth

解决方案


推荐阅读