我搜索了这个主题,但发现很少有帮助的细节.有了这些细节,我试着按如下方式编写一些代码.
注意:请将此帖中分享的详细信息与其他帖子进行比较,然后再将其标记为DUPLICATE,而不仅仅是主题.
- (NSArray *)getDataCountersForType:(int)type {
BOOL success;
struct ifaddrs *addrs = nil;
const struct ifaddrs *cursor = nil;
const struct sockaddr_dl *dlAddr = nil;
const struct if_data *networkStatisc = nil;
int dataSent = 0;
int dataReceived = 0;
success = getifaddrs(&addrs) == 0;
if (success) {
cursor = addrs;
while (cursor != NULL) {
if (cursor->ifa_addr->sa_family == AF_LINK) {
dlAddr = (const struct sockaddr_dl *) cursor->ifa_addr;
networkStatisc = (const struct if_data *) cursor->ifa_data;
if (type == WiFi) {
dataSent …Run Code Online (Sandbox Code Playgroud) 我不确定这是否可行,但我有这种情况.
我的UIWebView中显示了一个网站,该网站在UISegmentedController中设置了链接.他们的网站可以检测您是在wifi上还是在3g网络上.
现在,分段控制器指向2个不同的页面:1 - iPhone友好登录屏幕2 - 主页,一旦您登录.
现在问题是:
我可以编程我的应用程序来检测它是WIFI还是3G(我知道你可以这样做),但是根据答案转到第1或第2部分
有点像这样:
if (iPhone device is on 3g) {
Go to Segment 1;
} else {
Go to Segment 0;
}
Run Code Online (Sandbox Code Playgroud) 我有一个iOS应用程序,在应用程序启动(资源更新等)上发出一些小的网络请求.如果用户在iOS设置中关闭应用程序的蜂窝访问权限,则每次启动时都会从iOS获得有关网络使用情况的提示.有没有办法以编程方式知道此应用程序的蜂窝数据已被禁用,以便我可以在启动时禁用请求?