使用[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=Privacy&path=LOCATION"]]
在iOS9和8上可以成功跳转,但是在iOS10上无效。
高洛峰2017-04-18 09:51:24
iOS10의 URL이 변경되었습니다. 자세한 내용은 https://github.com/yanzhong/...을 참조하세요.
단, 이는 Widge에서만 유효하며 앱에서는 유효하지 않습니다.
다른 방법으로 점프할 수도 있지만 비공개 API이기 때문에 심사를 통과하지 못합니다.
참조: http://stackoverflow.com/ques...
ringa_lee2017-04-18 09:51:24
iOS10에서는 Wi-Fi, 위치 스위치 등 특정 설정 인터페이스로 점프하는 것이 비공개 API로 등록되어 있어 사용할 수 없습니다. iOS10에서는 해당 앱 설정 인터페이스로만 점프할 수 있습니다.
[[ UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
PHP中文网2017-04-18 09:51:24
iOS10이 점프하지 않는 문제에 대해 iOS는 실제로 공개되지 않은 방법을 제공합니다. 하지만 절제가 문제이지만 이를 우회할 수 있는 방법을 찾을 수 있습니다.
NSString * defaultWork = [self getDefaultWork];
NSString * bluetoothMethod = [self getBluetoothMethod];
NSURL*url=[NSURL URLWithString:@"Prefs:root=Bluetooth"];
클래스 LSApplicationWorkspace = NSClassFromString(@"LSApplicationWorkspace");
[[LSApplicationWorkspace PerformSelector:NSSelectorFromString(defaultWork)] PerformSelector:NSSelectorFromString(bluetoothMethod) withObject:url withObject:nil];
ASCII 값을 사용하여 메서드를 조합하고 결합합니다. 이는 검토를 우회합니다.
-(NSString *) getDefaultWork{
SData *dataOne = [NSData dataWithBytes:(unsigned char []) {0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x57,0x6f,0x72,0x6b, 0x73,0x70,0x61,0x63,0x65} 길이:16];
NSString *method = [[NSString alloc] initWithData:dataOne 인코딩:NSASCIIStringEncoding];
반환 메서드;
}
-( NSString *) getBluetoothMethod{
NSData *dataOne = [NSData dataWithBytes:(unsigned char []){0x6f, 0x70, 0x65, 0x6e, 0x53, 0x65, 0x6e, 0x73, 0x69,0x74, 0x69,0x76,0x65,0x55 ,0x52,0x4c} 길이:16];
NSString *keyone = [[NSString alloc] initWithData:dataOne 인코딩:NSASCIIStringEncoding];
NSData *dataTwo = [NSData dataWithBytes:(unsigned char []){0x77, 0x69,0x74,0x68,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73} 길이:11];
NSString *keytwo = [[NSString alloc] initWithData:dataTwo 인코딩:NSASCIIStringEncoding];
NSString * method = [NSString stringWithFormat:@"%@%@%@%@",keyone,@":",keytwo,@":"];
return method;
}
위는 Bluetooth 인터페이스 방법을 입력합니다. 다른 페이지로 이동할 수도 있습니다. 설정 페이지는 @"@"Prefs:root=TETHERING"이고, wifi는 @"Prefs:root=WIFI"입니다. Prefs의 P는 대문자로 되어 있으니 참고하세요. 이렇게 작성하면 단점도 있습니다. Apple의 미공개 방법의 경우 한 번 수정되면 다시 수정해야 합니다.
다른 답변을 참조하세요: https://segmentfault.com/q/10...