首页 > 解决方案 > iPadOS:通过 NEHotspotConfiguration 连接的网络在一段时间后断开连接

问题描述

我的应用程序使用NEHotspotConfigurationManagerWi-Fi 将自身连接到某个设备。该设备充当 WPA2 接入点。在较旧的 iOS 版本(iOS 12 及更低版本)中,一切正常,但在 iPadOS/iOS 13 中,设备每次都会在一段时间后断开连接。如何在不NEHotspotConfiguration永久存储的情况下保持连接?

我怀疑它与一个新功能有关 - 多个 Windows(我的应用程序不支持)。原因是NEHotspotConfiguration我将joinOnce标志设置为true(因为设备的网络不应该在应用程序之外使用)。苹果的文档指出:

当 joinOnce 设置为 true 时,只要配置它的应用程序在前台运行,热点就会保持配置和连接状态。当发生以下任何事件时,热点将断开连接并删除其配置:

  • 该应用程序在后台停留超过 15 秒。
  • 设备休眠。
  • 应用程序崩溃、退出或被卸载。
  • 该应用程序将设备连接到不同的 Wi-Fi 网络。

也许我的应用程序被错误地识别为离开前台。

设置joinOncefalse使应用程序保持连接,但这不是一个可接受的解决方案,因为我的设备不提供 Internet 连接,并且不得在应用程序之外使用它。

以下是我如何应用热点配置:

let hotspotConfiguration = NEHotspotConfiguration(ssid: self.ssid, passphrase: self.passphrase, isWEP: false)
hotspotConfiguration.joinOnce = true
       
NEHotspotConfigurationManager.shared.apply(hotspotConfiguration) { error in
    // connection is successfully applied
    // and about 15 seconds later it is lost.
}

我希望在joinOnce标志设置为时保持连接true

标签: iosswiftios13networkextensionipados

解决方案


Apple 似乎已在 iOS 13.4 beta 2 中解决了该问题,现在它可以joinOnce = true按照文档说明使用。苹果论坛相关讨论


推荐阅读