显示wifi网络无法正常运行,具体取决于建筑环境

时间:2018-12-05 18:04:23

标签: ios xcode react-native react-native-ios

这个问题是关于使用xcode为iOS手机构建应用的问题

我是Go后端工程师,但是最近我的公司由一家代理商(与React-Native)一起开发了其移动应用程序,并且我们收到了源代码。

直到现在,他们所做的构建都可以正常工作。

在我这一边,我的公司要求我更改一些图标并重做应用商店的构建。

在应用程序中,我们有一个屏幕,可让您连接到已连接的wifi或列出可用的网络:

@implementation WifiManager

//export the name of the native module as 'Wifi' since no explicit name is mentioned
RCT_EXPORT_MODULE();

//exports a method getCurrentWifiName to javascript
RCT_EXPORT_METHOD(getCurrentWifiName:(RCTResponseSenderBlock)callback){
  @try{
    NSString *wifiName = nil;
    NSArray *interFaceNames = (__bridge_transfer id)CNCopySupportedInterfaces();

    for (NSString *name in interFaceNames) {
      NSDictionary *info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)name);

      if (info[@"SSID"]) {
        wifiName = info[@"SSID"];
      }
    }
    callback(@[[NSNull null], wifiName]);
  }
  @catch(NSException *exception){
    callback(@[exception.reason, [NSNull null]]);
  }
}

@end

但是当我使用xcode(版本10.1(10B61))进行发行时,这些接口(wifiname,interfacenames)始终为零

所以我的问题是,作为一个非ios开发人员,使用xcode进行构建时我应该在这里寻找什么? 是否有要检查/取消检查的参数?另外,我在一个网站上发现CNCopySupportedInterfaces不能在IOS12上运行,但取决于它是否有效(取决于机构(机构/矿场))。

任何人都可以解释一下发生了什么事

非常感谢!

2 个答案:

答案 0 :(得分:0)

您需要在项目中启用访问WiFi信息功能。

导航到项目设置,选择“功能”选项卡并启用以下选项:

enter image description here

答案 1 :(得分:0)

我不知道React,所以我无法评论实现,但是作为一般规则,模拟器不会为您提供任何与网络相关的准确反馈。有一些方法可以模拟某些网络条件,以便对繁重的网络操作进行粗略的测试,但是该模拟器不过是macOS应用程序,因此仍然仅限于基础架构及其沙箱。

这是一个很长的说法,您应该在真实的设备上进行测试。