如何在使用 AFNetworking 的 iOS 应用程序上通过蜂窝数据连接互联网的同时通过 WiFi 拥有 FlashAir 接入点?
Posted
技术标签:
【中文标题】如何在使用 AFNetworking 的 iOS 应用程序上通过蜂窝数据连接互联网的同时通过 WiFi 拥有 FlashAir 接入点?【英文标题】:How to have a FlashAir Access Point over WiFi while still reach out internet via Cellular Data on an iOS app that uses AFNetworking? 【发布时间】:2017-10-27 17:12:54 【问题描述】:重要提示:我不需要同时传输,我的意思是,我不需要通过 WiFi 传输同时仍然通过 4G 传输,我只想通过 Wifi 连接到我的接入点,传输一些文件,终于不用关闭 WiFi 让 iPhone 使用 4G。
问题: 只要我连接到接入点(FlashAir 技术),我的 iPhone 就不会在意使用 4G 来访问互联网,就像它说:哦,我有 WiFi 连接,我将直接所有 HTTP通过这个网络获取请求,这对我很不利,因为这个接入点用于读取/写入文件。
到目前为止我所做的没有成功的是以下两件事:
将 nogatewaymode=1 变量添加到我的 FlashAir 设备的 conf 文件中,这使 ios 平台知道此接入点不打算提供互联网,因此,当我连接时通过 WiFi 到 FlashAir,iPhone 使用 4G 访问互联网,这很酷,这里的问题是在这种模式下我无法读取/写入文件到 FlashAir 设备,这使得 WiFi 连接无用。
将 FlashAir 设备配置为 Internet Pass-Thru 模式,这使其基本上可以充当接入点和路由器,这需要将 APPMODE=6 添加到 conf 文件中并还添加几个变量以提供辅助或父网络(SSID 和 Pass)。这实际上可行,但在仅 WiFi 的情况下,我不必在 WiFi 连接之间切换以从接入点获取文件,然后使用互联网上传它们,因为后者只使用其辅助网络来访问互联网。问题是,如果我们远离辅助网络,您可以获得接入点功能,但是当尝试上网时,iPhone 只关心尝试通过此 WiFi 连接访问互联网,这是不可能的,因为我们远离辅助网络网络,它只是报告一个没有互联网连接的错误,它甚至没有尝试使用一直处于开启状态的 4G。
一些额外的信息是我支持 iOS 8+,我在这个项目中使用 Obj-C,我使用 AFNetworking 来执行对互联网 Web 服务和 FlashAir 设备的请求,因为它支持它,它有一个内置的 Web 服务器,它使用参数侦听 HTTP GET 请求 (cgi)。
有什么想法吗? 提前致谢
【问题讨论】:
【参考方案1】:我的应用要求 Flashair 使用 Wifi 将网页传送到手机。该页面需要互联网 (4G) 才能将数据从 Flashair 上传到我的网站。
Flashair 声称这是不可能的,这个配置对我有用。 “NOGATEWAYMODE=1”很关键。而且我必须通过使用 192.168.0.1 的浏览器访问 Flashair,您不能使用 Netbios/Bonjour 名称。
[Vendor]
CIPATH=/SD_WLAN/WifiStatus.jpg
APPMODE=4
APPNETWORKKEY=********
VERSION=FA9CAW3AW3.00.01
CID=02544d535731364740d36e0a79010b01
PRODUCT=FlashAir
VENDOR=TOSHIBA
MASTERCODE=A1234567890Z
APPSSID=F751ENG4
APPNAME=F751ENG4
LOCK=1
WEBDAV=2
TIMEZONE=-28
DNSMODE=1
APPAUTOTIME=0
REDIRECT=1
NOGATEWAYMODE=1
【讨论】:
以上是关于如何在使用 AFNetworking 的 iOS 应用程序上通过蜂窝数据连接互联网的同时通过 WiFi 拥有 FlashAir 接入点?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS 中使用 AFNetworking 从 REST 接口定期轮询/拉取
如何在 iOS 中使用 AFNetworking 将数据发送到 php 服务器
如何在 iOS Objective-C 中使用 AFNetworking 库下载 .json 文件?
如何使用 AFNetworking 在 iOS 目标 c 中发出此帖子请求
如何允许用户在 iOS 中使用 AFNetworking 信任和固定自签名 SSL 证书
如何使用 AFNetworking 3.x 在 ios、objective-C 中使用来自 SOAP webservice 的数据