objective-c - iOS开发,如何跳转到系统设置页?iOS10
巴扎黑
巴扎黑 2017-04-18 09:49:24
0
4
942

使用[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=Privacy&path=LOCATION"]]在iOS9和8上可以成功跳转,但是在iOS10上无效。

巴扎黑
巴扎黑

répondre à tous(4)
小葫芦

L'URL d'iOS10 a été modifiée. Pour plus de détails, veuillez vous référer à https://github.com/cyanzhong/...
Cependant, cela n'est valable que dans Widge et non dans l'application.
Vous pouvez également utiliser d'autres méthodes pour sauter, mais comme il s'agit d'une API privée, elle ne passera pas l'examen.

Référence : http://stackoverflow.com/ques...

大家讲道理

Remplacez prefs : par Prefs : et c'est tout

左手右手慢动作

Dans iOS10, accéder à des interfaces de configuration spécifiques telles que le Wi-Fi, les commutateurs de localisation, etc. ont été répertoriés comme API privées et ne sont pas autorisés à être utilisés ; iOS10 ne peut accéder qu'à l'interface de configuration de l'application correspondante :
[[ UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];

Ty80

Pour le problème du non-saut d'iOS10, iOS propose en fait une méthode non divulguée. Mais la modération est un problème, mais nous pouvons trouver des moyens de le contourner.

NSString * defaultWork = [self getDefaultWork];
NSString * bluetoothMethod = [self getBluetoothMethod];
NSURL*url=[NSURL URLWithString:@"Prefs:root=Bluetooth"];
Class LSApplicationWorkspace = NSClassFromString (@"LSApplicationWorkspace");
[[LSApplicationWorkspace performSelector:NSSelectorFromString(defaultWork)] performSelector:NSSelectorFromString(bluetoothMethod) withObject:url withObject:nil];
Utilisez les valeurs ASCII pour assembler et combiner des méthodes. Cela contourne l’examen.

-(NSString *) getDefaultWork{
SData *dataOne = [NSData dataWithBytes:(unsigned char []) {0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x57,0x6f,0x72,0x6b, 0x73,0x70,0x61,0x63,0x65} longueur:16];
NSString *method = [[NSString alloc] initWithData:dataOne encoding:NSASCIIStringEncoding];
méthode de retour;
}
-( NSString *) getBluetoothMethod{
NSData *dataOne = [NSData dataWithBytes : (unsigned char []){0x6f, 0x70, 0x65, 0x6e, 0x53, 0x65, 0x6e, 0x73, 0x69,0x74, 0x69,0x76,0x65,0x55 ,0x52,0x4c} longueur : 16];
NSString *keyone = [[NSString alloc] initWithData:dataOne encoding:NSASCIIStringEncoding];
NSData *dataTwo = [NSData dataWithBytes:(unsigned char []){0x77, 0x69,0x74,0x68,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73} longueur:11];
NSString *keytwo = [[NSString alloc] initWithData:dataTwo encoding:NSASCIIStringEncoding];
NSString * method = [NSString stringWithFormat:@"%@%@%@%@",keyone,@":",keytwo,@":"];
return method;
>
Ce qui précède consiste à entrez les méthodes d’interface Bluetooth. Il peut également y avoir d’autres pages auxquelles accéder. La page de configuration est @"@"Prefs:root=TETHERING", et le wifi est @"Prefs:root=WIFI". Notez que le P dans Prefs est en majuscule. Il y a aussi des inconvénients à écrire de cette façon. Si la méthode non divulguée d'Apple est une fois modifié, il faut le refaire.

Référez-vous à mon autre réponse : https://segmentfault.com/q/10...

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!