最近、素晴らしいiOS5カスタム設定URLスキームを発見しました。これは、この素晴らしい website で詳細に説明できます。
これが機能することがわかり、ユーザーをアプリケーションから設定アプリに誘導します。
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"prefs:root=General"]];
ただし、path
パラメーターを介してRestrictionsパスに直接ルーティングすることはできません。
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"prefs:root=General&path=Restrictions"]];
誰かがこれに関するドキュメントを見つけましたか、これを機能させることができましたか?
どんな洞察も大歓迎です。ユーザーにアプリ内購入を有効にさせようとしていますが、ユーザーが手動で[制限]をクリックしないようにします(あまり明確ではありません)。
AS @ Nix Wang 's ANSWER THIS IS NOT WORK INIOS 10
警告:この方法は、iOS 5.1以降を実行しているデバイスでは機能しません-以下のHlungのコメントを参照してください。
path
コンポーネントの名前は実際のセクションとは異なる可能性がありますが、URLから直接そのセクションにアクセスできない可能性もあります。可能性のあるURLのリストを見つけましたが、制限はありません。おそらくまだ見つかっていないのかもしれません。
設定アプリで現在知られているURLのリスト:
IOS8の時点で、組み込みの設定アプリを開くには:
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}
実際のURL文字列は@"app-settings:"
です。文字列にさまざまなセクション(「Bluetooth」、「GENERAL」など)を追加しようとしましたが、メインの設定画面へのリンクのみが機能しているようです。そうでない場合は、返信を投稿してください。
Prefs URLスキームをiOSアプリに追加すると、iOS 5で可能なすべてのスキームを使用できるようになります。iOS9でテストしましたが、古いバージョンでも機能すると思います。
更新:
prefs:
はiOS 10以降では動作しません。
うん、これ(そしてもっと多く)を見て、テストアプリケーションに実装しさえしました。本当にAppleから決定的なWordを入手する必要がありますが、コミュニティのコンセンサス意見は、それが公に「発見/公開」された後、5.1でApple禁止されたため、それを含むアプリケーションは受け入れられません。
8/01/12更新: WiFi設定ダイアログをプログラムで起動する方法があるかどうか、開発者アカウントにAppleを尋ねました。応答は次のとおりです。
「当社のエンジニアはお客様のリクエストを確認し、現在出荷中のシステム構成を考慮して、目的の機能を実現するサポートされた方法はないと結論付けました。」
iOS 9再び動作します!
[設定]> [全般]> [キーボード]を開くには、次を使用します。
prefs:root=General&path=Keyboard
さらに、キーボードにさらに進むことができます:
prefs:root=General&path=Keyboard/KEYBOARDS
設定アプリケーションでBluetoothメニューを開きたいのですが、上記のパス(prefs:root = General&path = Bluetooth)が機能しませんでした。結局私のために働いたのは
UIApplication.sharedApplication().openURL(NSURL(string:"prefs:root=Bluetooth")!)
最初にprefs
URLスキームが定義されていることを確認してください。
IOS10のソリューション。正常に動作します。
NSURL *URL = [NSURL URLWithString:@"App-prefs:root=Twitter"];
[[UIApplication sharedApplication] openURL:URL options:@{} completionHandler:nil];
IOS10の時点で使用できます
UIApplication.sharedApplication().openURL(NSURL(string:"App-Prefs:root")!)
一般設定を開きます。
特定の設定を開くために、既知のURLを追加することもできます(最も投票された回答に表示されます)。たとえば、次のコードはtouchIDとパスコードを開きます。
UIApplication.sharedApplication().openURL(NSURL(string:"App-Prefs:root=TOUCHID_PASSCODE")!)
IOS 10(テスト済み)のアプリ通知設定で正常に動作します
if(&UIApplicationOpenSettingsURLString != nil){
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
}
ここに私が見つけた他のものがあります:
「prefs」URLスキームを定義した後、"prefs:root = Safari&path = ContentBlockers"はシミュレータで動作しています(iOS 9.1 英語)が、シミュレータでは動作していません- (簡体字中国語)。 Safariにジャンプするだけで、コンテンツブロッカーにはジャンプしません。アプリが国際的なものである場合は、注意してください。
更新:なぜかわからない。今ではもうContentBlockersに飛び込めない。同じコードでも同じバージョンでも動作しない。 :(
実際のデバイス(私の場合はiPhone 6SおよびiPad mini 2)では、「Safari」は「SAFARI」である必要があります、「Safari」は実際のデバイスでは動作せず、「SAFARI」はシミュレータで動作しています:
#if Arch(i386) || Arch(x86_64)
// Simulator
let url = NSURL(string: "prefs:root=Safari")!
#else
// Device
let url = NSURL(string: "prefs:root=SAFARI")!
#endif
if UIApplication.sharedApplication().canOpenURL(url) {
UIApplication.sharedApplication().openURL(url)
}
これまでのところ、iPhoneとiPadの間に違いは見つかりませんでした。
ここで1つのニュースを更新しています。 「prefs:」のみを使用することはAppleによって拒否されません。私はそれをテストし、アプリストアに承認されていることを確認しました(2016年8月)。どうも。