はじめに
こんにちは、nukkyです。
今回は、アプリにはつきもののユーザへのパーミッションの確認を
簡単に行えるライブラリを紹介したいと思います。
これ何かと忘れがちですし急遽追加したいとなった時に便利なので
よかったら選択肢の一つにどうぞ!
準備
今回もおなじみCarthageを使用します。
Cartfileにこちらを記述してください。
1 | github "nickoneill/PermissionScope" |
そうしたら、以下のコマンドでビルドしてください。
1 | carthage update --platform iOS |
実装
とりあえず表示
まずは「PermissionScope」をインポートします
1 | import PermissionScope |
グローバルで扱えるところに「PermissionScope」を用意します
1 2 | class PermissionSampleViewController: UIViewController { let pscope = PermissionScope() |
ひとまず、どんなのものが表示されるか確認したいので
gitのサンプルを表示してみます
1 2 3 4 5 6 7 | // Set up permissions pscope.addPermission(ContactsPermission(), message: "ContactsPermission\r\nmessage") pscope.addPermission(NotificationsPermission(notificationCategories: nil), message: "NotificationsPermission\r\nmessage") pscope.addPermission(LocationWhileInUsePermission(), message: "LocationWhileInUsePermission\r\nmessage") |
そうするとこのような表示が出るはずです
パーミッションの承認状況は以下で取得できます
1 2 3 4 5 6 7 | // Show dialog with callbacks pscope.show({ finished, results in print("got results \(results)") //->got results [Contacts Unauthorized, Notifications Authorized, LocationInUse Unknown] }, cancelled: { (results) -> Void in print("thing was cancelled") }) |
※キャンセルはcancelボタンだけではなくダイアログ以外の背景をタップした時もキャンセル扱いになります。
カスタマイズ
このままでも便利ですが文言や色は変更したいです
こちらもパラメータは用意されているのでヘッダーやボディ、ボタンなどカスタマイズしていきましょう
1 2 3 4 5 6 7 8 | // ヘッダー pscope.headerLabel.text = "ヘッダーラベル" pscope.headerLabel.textColor = UIColor.blue // ボディ pscope.bodyLabel.text = "ボディラベル" // ボタン pscope.permissionButtonBorderColor = UIColor.orange pscope.permissionButtonTextColor = UIColor.red |
そうするとこうなります
さいごに
「PermissionScope」如何でしょうか、
機能を使用するときではなくアプリ起動時に
ユーザーにパーミッションが必要な情報を届けるというのもアプリによってはアリだと思います。