根据建筑环境,显示 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 应用程序,因此它仍然仅限于底层架构及其沙箱。
说来话长,您应该在真实设备上进行测试。
关于使用 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 应用程序,因此它仍然仅限于底层架构及其沙箱。
说来话长,您应该在真实设备上进行测试。