NEHotspotConfigurationManager 在 iOS 11 上不断返回内部错误

Posted

技术标签:

【中文标题】NEHotspotConfigurationManager 在 iOS 11 上不断返回内部错误【英文标题】:NEHotspotConfigurationManager keeps returning Internal Error on iOS 11 【发布时间】:2018-02-09 21:55:25 【问题描述】:

我正在尝试让我的移动应用程序连接到 Wifi 网络(出于配置目的)。从 ios 11 开始,这应该可以通过 NEHotspotConfigurationNEHotspotConfigurationManager 类实现。

问题是我不断收到内部错误(错误代码 8),并且我没有收到用户提示请求连接到 wifi 网络的权限。我已经在 Xcode 中设置了 NEHotspotConfigurationManager 类所需的热点配置功能。另外值得一提的是,我只在真机上进行测试,因为 iOS 模拟器不支持 wifi。

虽然我使用的是 NativeScript 框架,但似乎这更多的是底层 iOS 平台的问题。

到目前为止,我有这个代码:

this.wifiManager = NEHotspotConfigurationManager.new();
this.wifiConfig = NEHotspotConfiguration.alloc().initWithSSID(this.config.wifi.SSID);
this.wifiConfig.joinOnce = true;

this.wifiManager.applyConfigurationCompletionHandler(this.wifiConfig, (error: NSError) => 
  if (error && error.code!==NEHotspotConfigurationError.AlreadyAssociated) 
    console.log(`wifiManager.applyConfigurationCompletionHandler error code $error.code: $error.localizedDescription`);
   else 
    console.log(`wifiManager.applyConfigurationCompletionHandler success!`);
  
);

提前致谢!

附:这个post 表明这可能只是设备本身的问题,设备重启应该可以解决问题,但对我来说不是这样

【问题讨论】:

有什么更新吗?我也有同样的问题 【参考方案1】:

我刚刚尝试了您的代码,它的工作原理与此完全一样。我也得到了内部错误代码 8,然后我启用了热点配置功能并部署到我的 iOS 11 设备。它立即显示所需的对话框。

这是我的完整代码:

constructor() 
    let configManager = NEHotspotConfigurationManager.new();
    let config = NEHotspotConfiguration.alloc().initWithSSID('Guest');

    config.joinOnce = true;

    configManager.applyConfigurationCompletionHandler(config, (error: NSError) => 
        if (error && error.code !== NEHotspotConfigurationError.AlreadyAssociated) 
            console.log(`wifiManager.applyConfigurationCompletionHandler error code $error.code: $error.localizedDescription`);
         else 
            console.log(`wifiManager.applyConfigurationCompletionHandler success!`);
        
    );

【讨论】:

感谢您的回答!我已经有一段时间没有看过这个了,我很确定我设置了这个功能,但你的回答暗示那里有些东西不太对劲。一旦我尝试过,我会接受这个答案。与此同时,您获得了赞成票。 有什么更新吗?我有同样的问题 - 一段时间后我得到内部错误并且我的功能开启【参考方案2】:

万一将来有人偶然发现这个问题

TL;DR iOS 中的错误 - 希望在 12.2 中修复 - 在旧 iOS 版本上重新启动 iPhone

虽然我们设置了正确的功能,但我们也遇到了这个问题。在我们重新启动手机之前,会引发内部错误。直到今天,我们还不知道何时或如何达到这种破碎状态。

幸运的是,@eskimo 在 Apple 开发者论坛中进行了讨论:

爱斯基摩人 2018 年 11 月 27 日下午 12:59:

人们一直为此绊倒,所以我想我会发布更新。作为 其他人在上面已经注意到我们有一个错误来跟踪这个问题(r. 42919071)。现在我不能提供任何关于什么时候发生的预测 将被修复。此外,我没有任何可靠的解决方法 建议。

我应该强调,这个错误的症状会一直持续到设备重新启动。如果您暂时遇到此错误 - 也就是说,您收到错误,然后,无需重新启动设备即可正常工作

iOS 12.2 中似乎也修复了这个错误

~爱斯基摩人 2019 年 2 月 21 日上午 9:24:

如果您过去遇到过这个问题,我会感谢您重新测试 最新的 iOS 12.2 beta 种子。我们在那里进行了一些更改以修复 这个问题,很高兴知道它们是否按预期工作。

来源:https://forums.developer.apple.com/thread/107851

【讨论】:

以上是关于NEHotspotConfigurationManager 在 iOS 11 上不断返回内部错误的主要内容,如果未能解决你的问题,请参考以下文章