Я думаю лучшее, это возможно в перекрестном браузере, который JavaScript window.print()
, который (в Firefox 3, для меня) поднимает диалоговое окно 'печати' а не диалоговое окно предварительного просмотра.
Как от iOS 13 для Вашего приложения также нужен Базовый доступ Местоположения для использования CNCopyCurrentNetworkInfo
функция , если это не настроило текущую сеть или имеет конфигурации VPN:
, Таким образом, это - то, в чем Вы нуждаетесь (см. документация яблока ):
- Ссылка CoreLocation.framework
библиотека
- Добавляет location-services
как UIRequiredDeviceCapabilities
Ключ/Значение в [1 115], Info.plist
- Добавляет NSLocationWhenInUseUsageDescription
Ключ/Значение в [1 116] Info.plist, описывающий, почему Ваше приложение требует, чтобы Базовое Местоположение
- Добавило "Доступ право" информации о WiFi для Вашего приложения
Теперь как пример Objective C, сначала проверило, был ли доступ местоположения принят прежде, чем считать информацию о сети с помощью CNCopyCurrentNetworkInfo
:
- (void)fetchSSIDInfo {
NSString *ssid = NSLocalizedString(@"not_found", nil);
if (@available(iOS 13.0, *)) {
if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied) {
NSLog(@"User has explicitly denied authorization for this application, or location services are disabled in Settings.");
} else {
CLLocationManager* cllocation = [[CLLocationManager alloc] init];
if(![CLLocationManager locationServicesEnabled] || [CLLocationManager authorizationStatus] == kCLAuthorizationStatusNotDetermined){
[cllocation requestWhenInUseAuthorization];
usleep(500);
return [self fetchSSIDInfo];
}
}
}
NSArray *ifs = (__bridge_transfer id)CNCopySupportedInterfaces();
id info = nil;
for (NSString *ifnam in ifs) {
info = (__bridge_transfer id)CNCopyCurrentNetworkInfo(
(__bridge CFStringRef)ifnam);
NSDictionary *infoDict = (NSDictionary *)info;
for (NSString *key in infoDict.allKeys) {
if ([key isEqualToString:@"SSID"]) {
ssid = [infoDict objectForKey:key];
}
}
}
...
...
}