我在为React Native应用程序开发的本机模块中使用NEHotspotConfigurationManager连接到暴露了开放wifi热点的设备。在较旧的iOS版本(iOS 12及更低版本)中,它可以正常工作,但在iOS 13中,连接几秒钟后,设备将断开连接。
这是我的本机方法,根据docs,我使用joinOnce
:
NEHotspotConfiguration* configuration = [[NEHotspotConfiguration alloc] initWithSSID:ssid];
configuration.joinOnce = true;
[[NEHotspotConfigurationManager sharedManager] applyConfiguration:configuration completionHandler:^(NSError * _Nullable error) {
if (error != nil) {
reject(ERR_HOTSPOT_CONFIGURATION, ERR_HOTSPOT_CONFIGURATION, error);
} else {
resolve(nil);
}
}];
延长连接时间的正确方法是什么?这是iOS 13中有意/已记录的更改吗?是一个错误吗?
此外,在Android中,如果热点没有互联网连接,则系统会自动切换到移动网络。这是iOS中的一些类似政策吗?我连接的设备无法访问互联网
答案 0 :(得分:4)
这是最新的iOS / iPadOS中的错误,类似于我的报告: iPadOS: Network connected via NEHotspotConfiguration disconnects after a while
我已将其报告给Apple,但尚未解决,很可能在iOS 13版本(9月19日)中无法解决。
解决方法是使用joinOnce = false
,但是在这种情况下,如果未检测到Internet连接,则可能会提示用户切换到蜂窝电话。不会在后台自动切换用户,但将切换到蜂窝电话作为首选选项。