18

これに関連する多くの質問があることを私は知っています。

1) openURL を使用して設定アプリを開くことは可能ですか?

2)別のアプリから設定アプリを開く

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

参考のためにこれらの質問に従いましたが、クエリは解決しません。メソッドを使用して設定を開くことができることは知っていopenURLますが、それは iOS 5.0 - 5.0.1 でのみ有効でした。iOS 5.1 では廃止されました。

  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"]]; 

それでも、位置情報サービスをオンにするユーザーの許可を求め、[設定] --> [プライバシー]の下で位置情報サービスに直接アクセスする、主に位置情報に基づく多くのアプリを見てきました。以下の iOS 6.1 を実行しているデバイスにインストールされているアプリのスクリーンショットは、[設定] をタップすると直接 [位置情報サービス] に移動することを示しています。

アプリでコードを実行しようとしましたが、機能しません (ユーザーを [設定] ページに移動して、アプリがアプリから直接連絡先情報にアクセスできるようにしたい)。Apple がこのために URL スキームを無効にしている場合、多くのアプリがまだそれを使用しているのはなぜですか?

ここに画像の説明を入力

4

2 に答える 2

26

位置情報などのサービスに関連付けられているアプリの場合、最初にアクセスを要求すると、OS は [設定] にリンクするボタンを含むアラートをスローします。これはアプリではなく、OS の基盤となるセキュリティによって行われます。

あなたが言及したように、iOS 6はこれを自分で行う機能を削除しました。

于 2013-03-28T12:46:47.763 に答える
16

iOS8 では設定アプリをプログラムで開くことができますが、以前のバージョンの iOS ではできません。

スウィフトの場合:

UIApplication.sharedApplication().openURL(NSURL(string:UIApplicationOpenSettingsURLString));

スウィフト 4:

if let url = NSURL(string: UIApplicationOpenSettingsURLString) as URL? {
    UIApplication.shared.openURL(url)
}

Objective-C では

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
于 2014-11-27T09:23:34.523 に答える