パネル型のアプリ・Webランチャーとして使うこともできます.
iOS15の方は少し仕様が異なるのでこちらを.
※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.
レビュー時のiOSバージョン : iOS14.8
スポンサーリンク
「名前」を使う
ショートカットでは対象の名前を取得したり変更できます.
そこで予めURLスキームやWebリンクそのものをその画像の名前にしておき, 名前を取得して開けば良いのでは?というのが今回のアイデアです.
というわけで画像のように予め画像を作り, 名前もURLスキームやWeb URLにしておきます.
ただしいくつか注意点と約束事を決めておきます.
- 今回は「ファイル」アプリに保存した画像を使います. 「写真」アプリでも可能ですが名前の変更といったカスタマイズは「写真」アプリでは直接できないためです(別レシピを用意して名前の変更と確認はできるので不可能ではありません)
- 今回組むレシピの都合上アイコンの並びが狂ってしまうため, 名前の先頭にインデックス用の文字列を追加しています.
例えば3番目をTwtitterを起動させるパネルとしたい場合, 名前を03-twitterとします(twitterはTwtitterのURLスキームの一つ).
よってあとで不要な部分を取り去る処理が必要です. - 「ファイル」アプリでは名前に:(コロン)が使えません.
なのでURLスキームやWeb URLはそのままでは使えないためわざと端折ったり別の文字で代用し, 後で戻します.
今回は画像の通り, URLスキームの場合は://を省略し, Web URLの場合は://の部分を(に置き換えた状態で名前を付けています.
戻す際はこの(の有無で場合分けします. - 今回は結果を表示するだけにします.
レシピ
というわけでレシピを組んでいきます.
まず「ファイルを取得」で用意したパネル画像のフォルダを読み込みます.
その結果を「ファイルにフィルタを適用」で並び替えます.
「並び順序」を「名前」にし, 「順序」を「アルファベット昇順」にしておきます.
これで予め名前の先頭に入れた番号に従って順番が整います.
取得したパネル画像より「リストから選択」で一つ選ばせます.
このプロンプトで改行付きの文字列を入れられたら良かったんですが, 対象がイメージの場合は1行目しか表示されないようです.
そして選択したイメージの名前を取得します.
この名前はdd-xxxx~(ddは数字)となっているため, 「テキストを置き換え」で取り除きます.
表示を増やして「正規表現」をオンにし, マッチさせたい場所(灰色で「こんにちは」とある方)に
\d\d-
と書きます(\dは正規表現で半角数字にマッチします).
今回は削除するので置き換え先(灰色で「世界」とある方)には何も入れません.
今回dd-xxx~としたのに特に意味はなく, 僕がそう決めただけです, なのでハイフンは無くてもいいですし他の決め方でもいいです.
その場合この箇所はそれぞれに応じて変更する必要があります.
いずれにしろこれで選択したパネル画像の名前で, 不要な番号などを取り除いた結果が得られました.
ただしこの時点では決め事の3にある通り, 「ファイル」アプリの都合でコロンを含む文字列が代用表記されたまま, あるいはURLスキームの場合は末尾の://がありません.
なので今回の場合は例えば代用記号として使った(を含むかどうかで文字列の復元を行います.
(を含まない場合というのは今回はURLスキームなので, 末尾に://を付けます.
(を含む場合は今回はWeb URLなので(を://に置き換えたものを使います.
これで完了です.
実行してみると, 画像を選ぶ感覚でURLスキームやWeb URLを取得することができます.
実際にはこれを「URLを開く」などで開くことになります.
(応用)パネルを下げる
このままだと先頭のパネルは画像上に固まった状態になります.
画面の大きい端末だと片手では届きません.
しかし先程の通りプロンプトの行数を増やして下げることもできません.
というわけで空のパネルをその場で作って無理やり下げることにします.
まずは行数を決めておきます.
「辞書」アクションにする必要はないです.
続いて前回同様パネル画像を読み込んでフィルタを適用します.
最初に指定した行数分の空のパネルを作ります.
iPhone8では上の通り1行あたり4枚なので, 行数×4だけパネルが必要です.
そもそもどうやって空のパネル(画像)を作るか…ですが, いくつか試行錯誤した結果, 「テキスト」アクションを対象に「入力からイメージを取得」を行うことで真っ白の画像を作れるようです.
「テキスト」アクションの中には文字を書いても書かなくても取得した画像は真っ白です.
これを好きな変数に追加し, 最後に本来のパネルを同じ変数に追加します.
こうして得たパネルの列を使い, 「リストから選択」で一つ選び, その名前を取得します.
さて, このままだと空のパネルも選択できることとなります.
その場合, 空のパネル画像の「名前」は一体何なのか…ということで見てみると, どうやら順番に
PDF-1, PDF-1-2 ,PDF1-3, PDF-1-4, …
となっているようです.
そこで共通項である"PDF-1"を含むかどうかで空パネルとの区別をつけることにします.
選択した画像の名前に"PDF-1"を含んでいない場合は, 前回と同じようにして名前から必要な文字を取り出して処理します.
その他, つまり"PDF-1"を名前に含むパネルの場合は今回はこのレシピを呼び出す, つまり始めに戻るようにします.
レシピはこれで完了です.
これで行単位で全体のパネルを下に下げることができます.
ただこの行下げの処理は意外と時間がかかるようで, 3行辺りから処理の重さが気になるレベルです.
〆
アイデアが浮かぶきっかけはRedditのとある投稿だったのですが, 早々に削除されたようで執筆しようとした頃にはもう見つかりませんでした.
空パネルはレシピのループに使うだけでは勿体ないのでフラグや何らかのパラメタ編集などの設定に使うといいです.
そもそもメインのパネル操作にしても, アプリやWeb URLの起動だけに使うのは勿体ないですね.
ショートカットでできるアクションのどれでも適用できますからもっと好きなものに応用してください.