6

我阅读了文档,它说:

通过调用 CNSetSupportedSSIDs 函数,应用程序可以向 Captive Network Support 注册无线网络 SSID 列表,从而承担对这些网络进行身份验证的责任。通常,当用户加入强制网络时,强制网络支持会提供一个网页表,允许用户通过网络进行身份验证。但是,如果应用程序已经注册了强制网络的 SSID,则 Web 表单被禁止,用户可以在相应的应用程序中完成身份验证

“用户可以在适当的应用程序中完成身份验证”到底是什么意思?

  • 用户是否应该启动此应用程序进行身份验证?如果是这样,是否会以某种方式通知用户,他/她应该这样做?
  • iOS 会启动这个应用程序,以便用户进行身份验证吗?
  • 应用程序会收到一些回调吗?

我对它应该如何工作特别感兴趣,如果一个应用程序已注册以处理捕获网络而另一个应用程序正在尝试访问网络,而用户尚未经过身份验证。

4

1 回答 1

8

看起来公共 API 并没有为您做太多事情。它会抑制消息,但用户应手动启动另一个应用程序以登录。

但是,有一个特殊的权利“com.apple.developer.CaptiveNetworkPlugin”,它使您可以在 CaptiveNetwork 框架中使用一堆私有 API 来构建一个真正的强制插件。一些公司与 Apple 合作执行此操作 ( https://devforums.apple.com/message/792112#792112 )。但是,它不是一个广泛可用的 API。

顺便提一句。以下是一位对此类应用程序之一进行逆向工程的人提供的一些附加信息:http: //kalapun.com/posts/reverse-engineering-ios-app/

于 2013-10-11T22:10:03.513 回答