iOS

【Swift】QuickActionを動的に変更する

投稿日:2021年2月15日 更新日:

はじめに

こんにちはsuzukiです。前回に続き、SwiftのQuickActionについて触れて行きます。 前回はQuickActionで固定のパラメーターを送るように設定しましたが、アプリの内部の情報によってQuickActionの内容を、動的に設定する方法について説明して行きます。

動的なショートカットの追加

動的なショートカットで何ができるかというと例えば天気アプリのように、上二つの地域を表示することができます。


この機能を利用すれば固定のショートカットに比べ、
通話回数の一番多い人に電話をかける画面を表示するのような、ユーザーの行動に即したショートカットを設定することが可能です。。
前回説明が漏れてしまっていたのですが、設定できるショートカットの上限は4つとなります。限られた枠をどう使うのかもよく考えた方がいいですね。

実装

実装自体は非常に簡単です。UIMutableApplicationShortcutItemというクラスを作成し、設定するだけです。

UIMutableApplicationShortcutItem

InfoPlistで固定のショートカットとほぼ同じで、下記のプロパティが用意されています。

  • var type: String:タイプの指定(必須)
  • var icon: UIApplicationShortcutIcon?:ホーム長押しで表示されるアイコンの指定
  • var localizedTitle: String:ホーム長押しで表示されるタイトルの設定(必須)
  • localizedSubtitle: String?:ホーム長押しで表示されるサブタイトルの設定
  • var userInfo: [String : NSSecureCoding]?:タップ時に受け取る情報を設定可能

実際に使う場合だとこんな感じです。

実行すると、下記のようになります。

動的にショートカットを設定する

試しにABCのボタンを作成し、最も多く推されているボタンに対するショートカットを設定するというコードを書いてみました。実際に使う際は、一応intのオーバーフローの際の動作とかを定義する必要があるかなと思っております。

ボタンをタップした際の動作

一番タップされているボタンの取得

アプリがバックグラウンドに遷移した際にショートカットの更新

さいごに

今携わっているアプリでは、QuickActionを使って設定したい機能がいくつかあります。ただショートカット機能が、あまり認知されていないので、アプリ内で機能紹介しようかと思っております。ユーザビリティを少しでも上げる一手になればいいのかなと思っております。

おすすめ書籍

[改訂新版]Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 WEB+DB PRESS plus 詳解 Swift 第4版 [改訂新版]Swiftポケットリファレンス (POCKET REFERENCE)

blog-page_footer_336




blog-page_footer_336




-iOS
-

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

swift

SwiftでTTTAttributedLabelの文字列からリンク表示

1 はじめに2 TTTAttributedLabelとは3 CocoaPodsでインストール4 実装4.1 Labelの表示4.2 タップの検知5 さいごに はじめに こんにちは。 はじめましてnuk ...

swift

SwiftでS3への画像アップロード

1 はじめに2 AWS上での事前準備3 CocoaPodsでAWS SDKをインストールをする4 認証の設定をする5 UIImageを保存して、URLを取得する6 S3へアップロードする7 さいごに ...

【Swift】WebViewのCookieの監視を行う

1 はじめに2 WKWebViewのCookieの監視2.1 Cookieの更新を取得する2.2 differenceを利用して必要なCookieの更新を取得する3 おまけ3.1 difference ...

swift

Swift3 [XIBファイル] コードでの呼び出し方まとめ

1 はじめに1.1 前提条件2 TableViewCell2.1 XIBの準備2.2 ViewControllerでの呼び出し3 CollectionView3.1 XIBの準備3.2 ViewCon ...

swift

[Swift]AVSpeechSynthesizerで音声再生

1 はじめに2 実装2.1 コード2.2 呼び出し3 さいごに はじめに こんにちは、nukkyです。 音声読み上げはちょっと今更感が漂いますが、案件で使用したばっかというのと、備忘録兼、初心者向けと ...

フォロー

blog-page_side_responsive

2021年2月
 123456
78910111213
14151617181920
21222324252627
28  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。