You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS开发:getConfiguredSSIDs为何仅返回最后创建的Hotspot 2.0/Passpoint配置文件?

问题分析与解决方案

我来帮你拆解这个问题——这其实是NEHotspotConfigurationManager处理Passpoint(Hotspot 2.0)配置的一个默认行为,很多开发者第一次接触Passpoint时都会踩这个坑。

问题根源

对于普通Wi-Fi SSID配置,你可以多次调用apply添加多个独立的配置,它们会共存;但Passpoint配置是应用级别的单一容器:每次你调用apply传入一个新的Passpoint配置对象时,系统会直接覆盖掉你的应用之前所有的Passpoint配置,而不是追加新的条目。这就是为什么你创建example1.com后再创建example2.com,前者会被替换掉,getConfiguredSSIDs只会返回最后一个域名。

正确的实现方式

要添加多个Passpoint域名,你需要把所有目标域名合并到同一个NEHotspotConfiguration对象中,然后一次性应用这个配置。如果后续需要新增域名,你需要维护本地的域名列表,每次新增时更新列表并重新生成配置应用。

示例代码

// 本地维护应用需要的所有Passpoint域名(可存在UserDefaults或本地数据库中)
var savedPasspointDomains: [String] = ["example1.com", "example2.com"]

// 创建包含所有域名的Passpoint配置
let hotspotConfig = NEHotspotConfiguration(ssid: "", passphrase: "", isWEP: false)
// 将所有域名赋值给anqpDomainNames属性
hotspotConfig.anqpDomainNames = savedPasspointDomains
// 开启持久化,确保重启设备后配置不会丢失
hotspotConfig.isPersistent = true

// 应用配置
NEHotspotConfigurationManager.shared.apply(hotspotConfig) { [unowned self] error in
    if let error = error {
        print("配置应用失败: \(error.localizedDescription)")
        successCallback([false])
    } else {
        NSLog("所有Passpoint配置已成功安装")
        successCallback([true])
    }
}

后续新增域名的处理

当你需要添加新的域名(比如example3.com),只需要更新本地的域名列表,然后重新执行上述配置创建与应用的代码即可:

// 添加新域名到本地列表
savedPasspointDomains.append("example3.com")
// 重新创建配置并应用(代码同上面的配置创建与apply部分)

验证效果

当你调用getConfiguredSSIDs时,现在会返回所有你添加的Passpoint域名:

NEHotspotConfigurationManager.shared.getConfiguredSSIDs { ssidsArray in
    for identifier in ssidsArray {
        print("已配置的标识: \(identifier)")
        // 输出会是 example1.com、example2.com、example3.com
    }
}

补充说明

  • Passpoint配置的核心是anqpDomainNames属性,这个数组可以包含多个域名,系统会将它们作为一个整体的Passpoint配置来处理。
  • 如果你尝试多次应用不同的Passpoint配置(每个只包含单个域名),后面的配置会直接覆盖前面的,这是系统的设计逻辑,目的是让应用的Passpoint配置保持统一。

内容的提问来源于stack exchange,提问作者Aleksandar Zoric

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 07:22:33