根据建筑环境,显示 wifi 网络不起作用

Showing wifi network doesn't work depending on building env

关于使用 xcode 为 IOS phone

构建应用程序,这个问题有点笼统

我是一名 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)总是 nil

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

谁能解释一下这是怎么回事?

非常感谢!

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

导航到项目设置,选择 "Capabilities" 选项卡并启用选项:

我不了解 React,所以我无法对实现发表评论,但作为一般规则,模拟器不会就任何与网络相关的内容为您提供准确的反馈。有一些方法可以模拟某些网络条件,以允许对网络密集型操作进行粗略测试,但模拟器只是一个 macOS 应用程序,因此它仍然仅限于底层架构及其沙箱。

说来话长,您应该在真实设备上进行测试。