皆さんこんにちは、みっくです。
QRコードを作成する方法というのは様々ありますが、今回はショートカットアプリを使った方法をご紹介します。

完成イメージはこちら👇

※本記事は下記バージョンにて確認している内容になります。
iOS:16.2 / FileMaker Go:19.6.1
FileMaker 側でやること
ショートカットで呼び出すファイルを作成します。
このようにフィールドを追加します。
- 「URL」テキストフィールド(QRコードを生成するテキスト)
- 「Base64」テキストフィールド(ショートカットで実行した結果を返す先)
- 「QRコード」オブジェクトフィールド(Base64をデコードして表示)
レイアウトにフィールド、ボタンを配置します。

次に、スクリプトを作成します。
QRコードにするテキストをクリップボードにコピーして、ショートカットを起動する、という内容です。

ショートカットを起動するパスはこのように設定します。
"shortcuts://run-shortcut?name=【ショートカット名】&input=clipboard"
【ショートカット名】には、後ほど作成するショートカットの名前を設定しますので、お好きな値を入れてください。
末尾の &input=clipboard で、クリップボードの内容を引数で渡しています。
次に、もう一つのスクリプト「QRコード」を作成します。
ショートカットで実行した結果を FileMaker Go に返して、QRコードの画像オブジェクトを表示する、という内容です。
ショートカットの実行結果はクリップボード経由でやり取りします。

QRコードのオブジェクトフィールドは、計算式で以下のように設定しておきます。
Base64Decode ( Base64 ; "qr.png" )
忘れないように、ファイルのアクセス権セットを変更しておきましょう。

ショートカット側でやること
ショートカットはこのように設定します。

設定するアクションは以下の通りです。
- QRコードを生成
- Base64エンコード
- クリップボードにコピー
- URLを開く
ショートカットではたくさんのアクションが選択できるので、キーワードで検索してアクションを絞り込むと設定しやすいです。
最後の「URLを開く」で指定しているのは、【ファイル名】という名前の開かれているファイルから【スクリプト名】を実行する、という内容です。
fmp://$/【ファイル名】.fmp12/?script=【スクリプト名】
参考:(FileMaker Pro ヘルプ)URL を使用してファイルを開く
よろしいですか?許可ダイアログ
実際に動かしてみると、このようにペーストを許可するかどうかのダイアログが表示されます。

これは他のアプリからクリップボード経由でコピーアンドペーストする際に表示されます。
iOS16以降に追加されたようで、それ以前のバージョンではこういったダイアログは表示されていませんでした。
コピペしてくる度、よろしいですか?と毎回聞かれるのは・・・煩わしいですよね。

FileMaker Go の設定にある「ほかのAppからペースト」を「許可」にすれば、いちいち聞いてこないようにできます。
ちなみに FileMaker Go 以外のアプリにもこの設定があるので、他のアプリの設定も見直してみると良いかもしれません。
まとめ
ショートカットとの連携でお手軽簡単にQRコードの生成ができちゃいました。
また副産物として、iOS のバージョンアップによって以前と挙動が違っている部分(いちいち出てくる許可ダイアログ)について、設定で回避できる方法が見つかりました。
個人的にこのダイアログ表示、いちいち聞いてこないでよ・・・と感じていたので、小さなストレスから解放され大変うれしいです♪
ショートカット連携シリーズは他にも検討中ですので、次回をお楽しみに!