iOS起動設定->制限URLスキーム


86

私は最近、素晴らしいiOS5カスタム設定URLスキームを発見しました。これは、この素晴らしいWebサイトで詳細に説明できます。

これが機能し、ユーザーをアプリケーションから設定アプリに誘導することがわかりました。

[[UIApplication sharedApplication] openURL:
       [NSURL URLWithString:@"prefs:root=General"]];

ただし、パラメータを介して制限パスに直接ルーティングすることはできませんpath

[[UIApplication sharedApplication] openURL:
   [NSURL URLWithString:@"prefs:root=General&path=Restrictions"]];

誰かがこれに関するドキュメントを見つけた、またはこれを機能させることができましたか?

どんな洞察も大歓迎です。ユーザーにアプリ内購入を有効にさせようとしていますが、ユーザーに手動で制限をクリックさせたくありません(あまり明白ではありません)。


2
Touch IDとパスコードのURLを知っている人はいますか?
ファビアンKöbel

1
タッチIDのためにこれを使用します。環境設定:ルート= TOUCHID_PASSCODE(stackoverflow.com/questions/35410746/...
ファビアンKöbel

回答:


144

AS @Nix王さんANSWER THIS IS NOT仕事にIOS 10


警告:この方法は、iOS5.1以降を実行しているデバイスでは機能しません-以下のHlungのコメントを参照してください。

それはいる可能性がありますpathコンポーネントは、実際のセクションとは異なる名前を持っていますが、それはあなたが現在、URLから直接その部分にアクセスできないことも可能です。考えられるURLのリストが見つかりましたが、制限がありません。まだ見つかっていない可能性があります。

設定アプリで現在知られているURLのリスト:

  • prefs:root = General&path = About
  • prefs:root = General&path = ACCESSIBILITY
  • prefs:root = AIRPLANE_MODE
  • prefs:root = General&path = AUTOLOCK
  • prefs:root = General&path = USAGE / CELLULAR_USAGE
  • prefs:root =明るさ
  • prefs:root = General&path = Bluetooth
  • prefs:root = General&path = DATE_AND_TIME
  • prefs:root = FACETIME
  • prefs:root = General
  • prefs:root = General&path = Keyboard
  • prefs:root = CASTLE
  • prefs:root = CASTLE&path = STORAGE_AND_BACKUP
  • prefs:root = General&path = INTERNATIONAL
  • prefs:root = LOCATION_SERVICES
  • prefs:root = ACCOUNT_SETTINGS
  • prefs:root = MUSIC
  • prefs:root = MUSIC&path = EQ
  • prefs:root = MUSIC&path = VolumeLimit
  • prefs:root = General&path = Network
  • prefs:root = NIKE_PLUS_IPOD
  • prefs:root = NOTES
  • prefs:root = NOTIFICATIONS_ID
  • prefs:root = Phone
  • prefs:root = Photos
  • prefs:root = General&path = ManagedConfigurationList
  • prefs:root = General&path = Reset
  • prefs:root = Sounds&path = Ringtone
  • prefs:root = Safari
  • prefs:root = General&path = Assistant
  • prefs:root = Sounds
  • prefs:root = General&path = SOFTWARE_UPDATE_LINK
  • prefs:root = STORE
  • prefs:root = TWITTER
  • prefs:root = General&path = USAGE
  • prefs:root = VIDEO
  • prefs:root = General&path = Network / VPN
  • prefs:root = Wallpaper
  • prefs:root = WIFI
  • prefs:root = INTERNET_TETHERING

54
ちょっとした警告、idownloadblog.com / 2011/11/29 / iphone-5-1-disables-shortcutsは、iOS設定へのすべてのURLスキームがiOS5.1で削除されると述べました(したがって、prefs:root = General&path = NetworkのようなURL動作しなくなります)ので、ご注意ください。
Hlung 2012

3
これらは完全に削除されるわけではなく、UIAlertViewのボタンにこれらのURLリンクを配置するだけです。だから、単にアプリがバックグラウンドに行くと、設定が開き、OK、およびなどをキャンセルすることをUIAlertViewに警告を置く
zambono

4
それはもう機能していません、それはしばらく前に私のアプリの1つで機能していましたが、もう機能していません。
zambono 2012

5
:iOS8のとして、あなたは、組み込みのURLを設定アプリを起動することができます[NSURL URLWithString:UIApplicationOpenSettingsURLString]
ジェイソン・ムーア

2
iOS10のソリューション/代替案をお願いします。
ranjit.x.singh 2016

48

iOS8以降、組み込みの設定アプリを次の方法で開くことができます。

NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
   [[UIApplication sharedApplication] openURL:url];
}

実際のURL文字列は@"app-settings:"です。文字列にさまざまなセクション(「Bluetooth」、「GENERAL」など)を追加しようとしましたが、メインの設定画面へのリンクしか機能しないようです。それ以外の場合は、返信を投稿してください。


10
これは、その特定の呼び出しが設定起動URLであるためです。アプリのカスタム設定が存在する場合は、それを開きます。そうでない場合は、設定アプリを開いてメイン画面を表示します。developer.apple.com/library/ios/documentation/UIKit/Reference/...
JAL

1
アプリに有効/無効にしたい特定の設定がある場合の素晴らしい答え。すべてが1つの場所にあり、目的の構成に到達するためにユーザーを[設定]に移動する必要はありません。ありがとう!
kyleturner 2014

1
@FabianKöbelはTouchIDとパスコード用のものを見つけることができましたか?
ShayanK 2016年

1
@AspersionCast:環境設定:あなたはこの使用できるルート= TOUCHID_PASSCODE(stackoverflow.com/questions/35410746/...
ファビアンKöbel

これは、設定アプリを起動するために現在Appleが承認している唯一の方法のようです。
u2Fan

42

iOSアプリに設定URLスキームを追加すると、iOS 5で使用できたすべてのスキームを使用できるようになります。iOS9でテストしましたが、古いバージョンでも機能すると思います。


このトリックは、iOS8を起動する必要がない場合にのみ機能します。
Valeriy Van 2015

1
ただし、iOS 8でも同様です。たとえば、このURLの恥をアプリケーションに追加しない場合、WiFi設定を開くことはできません。
ペドロ・トーレス

はい、その通りです。このユースケースについては考えていませんでした。
Valeriy Van 2015

9
@conorgriffin設定が下にあると思っているあなたや他の人のために:ターゲット| (アプリケーション)| 情報| URLタイプ| +
ケビンシルベストル

誰かが「prefs:root」URLの使用を拒否されたと言いました。stackoverflow.com/questions/8246070/...
Hlung

33

更新:

prefs: iOS10以降は機能しません。


4
代替手段は何ですか?
OXXY 2016

1
この公式のAppleDoc (developer.apple.com/library/ios/qa/qa1924/_index.html)は意図的に設定の問題を取り上げており、2016年8月2日付けであるため、これはおかしなことです。
ダスピアニスト2016

1
そのドキュメントは、キーボード設定にのみ使用するように言っています(その特定の使用以外は違反です)
Peter Johnson

残念ながら、iOSの10でキーボード設定のためにも動作するようには思えない
Intrications

4
一方でprefs:、もはや仕事、次のことが(少なくとも一般開くには)しません:App-Prefs::root=Settings&path=General
daspianist

22

うん、これ(そしてもっとたくさん)を見て、テストアプリケーションに実装した。本当にAppleから決定的な言葉を入手する必要がありますが、コミュニティのコンセンサス意見では、Appleはそれが公に「発見/公開」された後、5.1でそれを許可しなかったため、それを含むアプリケーションは受け入れられません。

08/01/12更新:プログラムでWiFi設定ダイアログを起動する方法があるかどうか、開発者アカウントを通じてAppleに尋ねた。応答は次のとおりです。

「当社のエンジニアはお客様のリクエストを確認し、現在出荷されているシステム構成を考えると、目的の機能を実現するためのサポートされている方法はないと結論付けました。」


9
この機能が必要な人は、公式のバグレポートを記録することをお勧めします。報告が多ければ多いほど、それが目に見えるようになり、サポートされているソリューションが将来提示される可能性が高くなります。bugreport.apple.com
Matt Connolly

18

ではiOSの9それが再び動作します!

[設定]> [一般]> [キーボード]を開くには、次を使用します。

prefs:root=General&path=Keyboard

さらに、キーボードにさらに進むことが可能です:

prefs:root=General&path=Keyboard/KEYBOARDS

PopKeyアプリでこれに気づきました。[設定]> [Wi-Fi設定]のURLを試しましたが、同様に機能します。これが残ることを願いましょう。
ジェイミーマクダニエル

これらの方式はに追加する必要がありますかLSApplicationQueriesSchemesではinfo.plist
ワープリング2015

2
いいえ、ありません。openURL:メソッドで使用するだけです。
ミハイル

1
これを使用してWebページから設定にリンクしようとしていますが、iPhoneのSafariでは機能しているように見えますが、iPadでは機能していないようです。どちらも9.0.2にあります。真剣に、アップル?
ランディH.

3
ターゲットに設定URLスキームを追加する必要があります
shim

7

設定アプリケーションでBluetoothメニューを開きたいのですが、上記のパス(prefs:root = General&path = Bluetooth)が機能しませんでした。私のために働いたのは

UIApplication.sharedApplication().openURL(NSURL(string:"prefs:root=Bluetooth")!)

prefs最初にURLスキームが定義されていることを確認してください。


これは、最近のiOSバージョンでBluetoothメニューが移動されたためです。これは、Generalの下ではなく、トップレベルの設定になりました。
ネイト

@Imran:あなたは-ものを忘れましたprefs
Michael Dorner 2016

5

iOS10のソリューション。正常に動作します。

NSURL *URL = [NSURL URLWithString:@"App-prefs:root=TWITTER"];
[[UIApplication sharedApplication] openURL:URL options:@{} completionHandler:nil];

これは合法ですか?アプリの提出が成功したからといって、これが合法であるとは限りません。これは、将来的には、最終的に失敗する可能性があります...
スタース

@Stas:いいえ、そうではありません。プライベートAPIだからです。
TejasK18年

4

iOS10以降、使用できます

UIApplication.sharedApplication().openURL(NSURL(string:"App-Prefs:root")!) 

一般設定を開きます。

また、既知のURL(最も賛成の回答で確認できます)を追加して、特定の設定を開くこともできます。たとえば、以下のものはtouchIDとパスコードを開きます。

UIApplication.sharedApplication().openURL(NSURL(string:"App-Prefs:root=TOUCHID_PASSCODE")!)

1
「App-Prefs:root = TOUCHID_PASSCODE」はiOS11では機能しません。他の解決策はありますか?
myaug 2017年

App-PrefsはプライベートAPIであり、レビュー中にアプリが拒否されます。
TejasK18年

2

これが私が見つけた他の何かです:

  1. 「prefs」URLスキームを定義した後、「prefs:root = Safari&path = ContentBlockers」はシミュレーター(iOS 9.1英語)では機能しますが、シミュレーター(簡体字中国語)では機能しません。Safariにジャンプするだけで、コンテンツブロッカーにはジャンプしません。アプリが国際的なものである場合は、注意してください。
    更新:理由がわかりません。ContentBlockersにジャンプできなくなりました。同じコード、同じバージョンが機能しなくなりました。:(

  2. 実際のデバイス(私のものはiPhone6SとiPadmini 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)
    }
    
  3. これまでのところ、iPhoneとiPadの間に違いは見つかりませんでした。


これが再び機能するようになったことがありますか?そうでなければ、そのような恥!
ライアンブロディ2015

@RyanBrodie「そんな恥」とはどういう意味ですか?
Kaiyuan Xu 2015

非常に残念なことに、Safariのコンテンツブロッカー設定に直接リンクするのは素晴らしいことです
Ryan Brodie 2015

6
@RyanBrodie動作する可能性があるとしても、今はApp Storeアプリには使用しないことをお勧めします。今朝iTunesConnectから「拒否」されました。「prefs:root」はプライベートAPIです(アプリがあります)。 App Storeでprefs:rootを使用しています...神は理由を知っています)
Kaiyuan Xu 2015

頭を上げてくれて本当にありがとうとは思いませんでした!
ライアンブロディ

2

IOS 10のアプリ通知設定で正常に動作します(テスト済み)

if(&UIApplicationOpenSettingsURLString != nil){
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
}


0

ここで1つのニュースを更新しています。'prefs:'のみを使用することは、Appleによって拒否されません。私はそれをテストし、アプリストアに承認されたことを確認しました(2016年8月)。どうも。


私はこれ[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=DO_NOT_DISTURB"]];をデバイスのオープンDND設定に使用しています。Appleはこれを拒否しますか?
Shreyank 2016

レビューに合格しただけですか、それとも機能しますか?つまり、openURLを使用すると設定に移動しますか?それは私の側ではうまくいきませんでした。
アフメットAkkök
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.