カテゴリー: iOS

Swiftでのパーミッション取得を簡単に

はじめに

こんにちは、nukkyです。

今回は、アプリにはつきもののユーザへのパーミッションの確認を
簡単に行えるライブラリを紹介したいと思います。
これ何かと忘れがちですし急遽追加したいとなった時に便利なので
よかったら選択肢の一つにどうぞ!

準備

今回もおなじみCarthageを使用します。

Cartfileにこちらを記述してください。

github "nickoneill/PermissionScope"

そうしたら、以下のコマンドでビルドしてください。

carthage update --platform iOS

 

実装

とりあえず表示

まずは「PermissionScope」をインポートします

import PermissionScope

グローバルで扱えるところに「PermissionScope」を用意します

class PermissionSampleViewController: UIViewController {
    let pscope = PermissionScope()

ひとまず、どんなのものが表示されるか確認したいので
gitのサンプルを表示してみます

// 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")

そうするとこのような表示が出るはずです

 

パーミッションの承認状況は以下で取得できます

// 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ボタンだけではなくダイアログ以外の背景をタップした時もキャンセル扱いになります。

カスタマイズ

このままでも便利ですが文言や色は変更したいです
こちらもパラメータは用意されているのでヘッダーやボディ、ボタンなどカスタマイズしていきましょう

 // ヘッダー
pscope.headerLabel.text = "ヘッダーラベル"
pscope.headerLabel.textColor = UIColor.blue
// ボディ
pscope.bodyLabel.text = "ボディラベル"
// ボタン
pscope.permissionButtonBorderColor = UIColor.orange
pscope.permissionButtonTextColor = UIColor.red

そうするとこうなります

 

 

さいごに

「PermissionScope」如何でしょうか、
機能を使用するときではなくアプリ起動時に
ユーザーにパーミッションが必要な情報を届けるというのもアプリによってはアリだと思います。

nukky

シェア
執筆者:
nukky
タグ: Swift

最近の投稿

フロントエンドで動画デコレーション&レンダリング

はじめに 今回は、以下のように…

2週間 前

Goのクエリビルダー goqu を使ってみる

はじめに 最近携わっているとあ…

4週間 前

【Xcode15】プライバシーマニフェスト対応に備えて

はじめに こんにちは、suzu…

2か月 前

FSMを使った状態管理をGoで実装する

はじめに 一般的なアプリケーシ…

3か月 前