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

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

巴扎黑
巴扎黑

全部回覆 (4)
小葫芦

iOS10的URL換掉了,具體參考 https://github.com/cyanzhong/...
不過這個只在Widge裡有效,App無效。
用其他辦法也可以做到跳轉,不過因為是私有API會通不過審核。

參考:http://stackoverflow.com/ques...

    大家讲道理

    把prefs: 換成Prefs: 就可以了

      左手右手慢动作

      在ios10中跳到具體的例如wifi,位置開關等具體的設定介面都已經被列為私有的API了,不允許使用;ios10只能跳到對應的APP設定介面:
      [[UIApplication sharedApplication ] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];

        Ty80

        針對iOS10不跳轉問題,其實iOS提供了一套未公開方法。但審核是一個問題,不過我們可以想辦法繞過審核。

        NSString * defaultWork = [self getDefaultWork];
        NSString * bluetoothMethod = [self getBluetoothMethod];
        NSURL*url=[NSURL URLWithString:@"Prefs:root=BluetoClass"];Lpace未來" ;
        [[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} length:16];
        NSString *method = [[NSString alloc] initWithData:dataOne encoding:NSASCIIStringEncoding];oth return method; dataWithBytes:(unsigned char []){0x6f, 0x70, 0x65, 0x6e, 0x53, 0x65, 0x6e, 0x73, 0x69,0x74, 0x69,0x76,0x5,0x76,0x74, 0x69,0x76,0x5,0x7. keyone = [[NSString alloc] initWithData:dataOne encoding:NSASCIIStringEncoding];
        NSData *dataTwo = [NSData dataWithBytes:(unsigned char []){0x77,0x69,0x74,0x68,0x4fx68,0x46,07,069,0x68,0x4fx,07,06,000x,0fx,00x,00x,00x 0x73} length:11];
        NSString *keytwo = [[NSString alloc] initWithData:dataTwo encoding:NSASCIIStringEncoding];
        NSString *method = [NSString stringWithFormat:@"%@
        NSString *method = [NSString stringWithFormat:@"%@
        NSString *method = [NSString,stringWithFormat:@"%@
        NSString *method =@.@"%@%@keyone, :",keytwo,@":"];
        return method;
        }
        上面是進入藍牙介面的方法。也可以有其他的頁面可以跳轉。設定頁面是@"@"Prefs:root=TETHERING",wifi是@"Prefs:root=WIFI"。注意Prefs的P是大寫。這麼寫也有弊端,如果蘋果的未公開方法一旦修改。我們必須重新進行修改。
        參考我的另一個答案:https://segmentfault.com/q/10...

          最新下載
          更多>
          網站特效
          網站源碼
          網站素材
          前端模板
          關於我們 免責聲明 Sitemap
          PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!