84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
使用[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=Privacy&path=LOCATION"]]在iOS9和8上可以成功跳转,但是在iOS10上无效。
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=Privacy&path=LOCATION"]]
iOS10 の URL が変更になりました。詳細は https://github.com/chanzhong/... を参照してください。ただし、これは Widge でのみ有効であり、App では有効ではありません。他のメソッドを使用してジャンプすることもできますが、プライベート API であるため、レビューは通過しません。
参考: http://stackoverflow.com/ques...
prefs: を Prefs: に置き換えるだけです
ios10 では、Wi-Fi、ロケーション スイッチなどの特定の設定インターフェイスへのジャンプはプライベート API としてリストされており、使用は許可されていません。ios10 では、対応する APP 設定インターフェイスにのみジャンプできます:[[ UIApplicationsharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
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];return メソッド;}-( NSString *) getBluetoothMethod{NSData *dataOne = [NSData dataWithBytes:(unsigned char []){0x6f, 0x70, 0x65, 0x6e, 0x53, 0x65, 0x6e, 0x73, 0x69,0x74, 0x69,0x76,0x65,0x55 ,0x52,0x4c} length: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} 長さ:11];NSString *keytwo = [[NSString alloc] initWithData:dataTwo エンコーディング:NSASCIIStringEncoding];NSString * method = [NSString stringWithFormat:@"%@%@%@%@",keyone,@":",keytwo,@":"];returnメソッド;}上記はBluetooth インターフェイス メソッドを入力します。他のページにジャンプすることもできます。設定ページは@"@"Prefs:root=TETHERING"、Wi-Fiは@"Prefs:root=WIFI"です。PrefsのPが大文字であることに注意してください。このように書くことにはデメリットもあります。Appleの非公開の方法の場合一度変更すると、再度変更する必要があります。
私の他の回答を参照してください: https://segmentfault.com/q/10...
iOS10 の URL が変更になりました。詳細は https://github.com/chanzhong/... を参照してください。
ただし、これは Widge でのみ有効であり、App では有効ではありません。
他のメソッドを使用してジャンプすることもできますが、プライベート API であるため、レビューは通過しません。
参考: http://stackoverflow.com/ques...
prefs: を Prefs: に置き換えるだけです
ios10 では、Wi-Fi、ロケーション スイッチなどの特定の設定インターフェイスへのジャンプはプライベート API としてリストされており、使用は許可されていません。ios10 では、対応する APP 設定インターフェイスにのみジャンプできます:
[[ UIApplicationsharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
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];
return メソッド;
}
-( NSString *) getBluetoothMethod{
NSData *dataOne = [NSData dataWithBytes:(unsigned char []){0x6f, 0x70, 0x65, 0x6e, 0x53, 0x65, 0x6e, 0x73, 0x69,0x74, 0x69,0x76,0x65,0x55 ,0x52,0x4c} length: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} 長さ:11];
NSString *keytwo = [[NSString alloc] initWithData:dataTwo エンコーディング:NSASCIIStringEncoding];
NSString * method = [NSString stringWithFormat:@"%@%@%@%@",keyone,@":",keytwo,@":"];
returnメソッド;
}
上記はBluetooth インターフェイス メソッドを入力します。他のページにジャンプすることもできます。設定ページは@"@"Prefs:root=TETHERING"、Wi-Fiは@"Prefs:root=WIFI"です。PrefsのPが大文字であることに注意してください。このように書くことにはデメリットもあります。Appleの非公開の方法の場合一度変更すると、再度変更する必要があります。
私の他の回答を参照してください: https://segmentfault.com/q/10...