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)

page_footer_responsive




-iOS
-

執筆者:

免責事項

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


comment

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

CAPTCHA


関連記事

【Swift】WKWebViewのWKUserContentControllerで循環参照

1 はじめに2 循環参照が起きた原因2.1 実装2.2 実装の問題の箇所2.3 修正方法3 さいごに4 おすすめ書籍 はじめに こんにちはsuzukiです。今回はwebviewのWKUserConte ...

[Swift5.5]actorで非同期のデータ競合を回避しよう!

1 はじめに2 actor2.1 actorを使用する際の注意3 さいごに4 おすすめ書籍 はじめに Swift5.5にて非同期に関する追加が行われ、async/awaitについては以前の記事で紹介し ...

swift

iOSでライブラリFSCalendarをつかって簡単にカレンダー表示

1 はじめに2 準備3 実装3.1 Storyboard3.2 コード3.3 タップの取得4 さいごに はじめに こんにちは、nukkkyです。 ツール系アプリ開発時にカレンダー表示を よく使うと思い ...

swift

[Swift]動画撮影にて好きなサイズでプレビュー表示する

1 はじめに1.1 前提条件2 実装3 さいごに はじめに こんにちは、nukkyです。 今回はメインのビューの右上とかに小窓の様なプレビューにカメラの映像を出して、動画撮影するという機能を作成したの ...

swift

[Swift3] スクロールする画面に固定でボタンを表示する方法

1 はじめに1.1 前提条件2 Storyboardの準備3 Controllerの実装3.1 スクロールする画面の実装(TableView)3.2 固定で表示するボタンを配置している画面の実装(Co ...

フォロー

blog-page_side_responsive

2021年2月
 123456
78910111213
14151617181920
21222324252627
28  

アプリ情報

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