ios显示wifi无网络连接到服务器,iOS APP没有联网权限解决办法

APP发布后,部分用户反馈手机可以连上WiFi,但是APP通信不上,有的手机甚至在设置界面就找不到APP,证书中加入了网络和WiFi服务,工程TARGETS 的 Capabilities中的Network Extension 和wireless a'ccessory configuration 都打开了,但是还是有这个问题。我以为每个APP应该是在首次安装的时候都会提示“是否允许连接无线数据”,到现在我才发现这真的只是我以为。。。我的APP有好多在不同的iPhone上首次运行并没有提示“是否允许连接无线数据”。

出现这个问题,还有一个隐藏的因素,就是我的APP连接的WiFi不能上网,只能用来与控制卡发送和接收数据。

又一次 拿来一台有问题的iPhone测试,发现把WiFi断开,这个时候连接的是4G,再去打开其他软件,再回到APP,就出现提示“是否允许连接无线数据”,然后我去下载了其他的软件,发现一个问题,就是有的在首次打开时候就用到网络的,肯定会提示,有这个提示的话,到设置界面也就显示了APP这个情况就感觉有点思路了。。。就是在程序入口的时候检测一下网络权限,因为有的iPhone会在程序第一次运行的时候直接提示“是否允许使用无线数据”,但是有的还不会提示。没有联网权限的时候使用一下网络,这个时候可能就会有这个提示了。

解决办法:我在入口类里面先去检测APP是否有网络权限,检测到有问题的iPhone确实是没有联网权限,然后在在没有联网权限的时候去使用(连接)一下网络,这样就解决了APP不会提示“是否允许连接无线数据”的问题。

代码部分

1,检测联网权限

首先要导入   @import CoreTelephony;

- (void)checkNetwork{

CTCellularData *cellularData = [[CTCellularData alloc]init];

cellularData.cellularDataRestrictionDidUpdateNotifier =  ^(CTCellularDataRestrictedState state){

BOOL _isRestricted = YES;

//获取联网状态

switch (state) {

case kCTCellularDataRestricted:

NSLog(@"Restricted"); //拒绝

break;

case kCTCellularDataNotRestricted:

_isRestricted = NO;

NSLog(@"Not Restricted"); //允许

break;

case kCTCellularDataRestrictedStateUnknown:

NSLog(@"Unknown"); //未知

break;

default:

break;

};

if (_isRestricted  == YES) {

[self requestNetwork];

}

};

}

2,假设在程序没有联网权限的时候,去(使用网络)连接一下百度

- (void)requestNetwork{

NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];

NSURLRequest *request = [NSURLRequest requestWithURL:url];

[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {

}];

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值