やりたかったこと
iOS の Safari で見つけたサイトのURLとタイトルを FileMaker Go にレコードとして記録したかったので、最初は Safari で URL を長押し → コピー、FileMaker Go 19 を起動して記録用のファイルを開き、登録スクリプトを起動するボタンを押す、という手順で記録していた。
登録スクリプトでは、クリップボードのURLからページデータを読み込んで、<title>
タグからページタイトルの情報を得て、URLとタイトルをそれぞれのフィールドにセットするようにしている。
これでも良いのだが、Safariの共有ボタンでショートカットアプリを起動し、FileMakerファイルのスクリプトを実行させることができることを知ったので、試してみた。
実現した手順
Safari で記録したいサイトを開いている状態で、下にある共有ボタン(画像の赤丸)をタップ。
表示されるダイアログをスクロールして下の方に、実行したいショートカットの名前を見つけてタップ。
(ここでは「お気に入りサイト登録」という名前)
そうするとFileMaker Goで該当ファイルを開き、指定したスクリプト(「URL新規登録」)を実行して処理完了。
ショートカット実現への手順
FileMaker 側で設定すること
ファイルメーカーで作成したファイルの、実行したいスクリプトをショートカットから実行できるようにする。
具体的には、スクリプトワークスペースを開き、ショートカットから実行させたいスクリプト名を右クリックして、出てくるメニューから「ショートカットの登録を有効にする」を選択する。
次に、そのファイルをURLスキームから実行できるように設定する。
具体的には、ファイルの管理メニューからアクセス権を開き詳細の拡張アクセス権のダイアログで、キーワード:fmurlscript を選択、編集して「完全アクセス権」をセットする。
ショートカットで登録用ショートカットを作る
ショートカットを作る前に、先程作成したファイルをiOS 機器に転送して一度 FileMaker Go で開いておきます。(重要)
iOS のショートカットアプリを起動し、+ボタンで新規のショートカットを作り、名前を決める。(この例では「お気に入りサイト登録」とした。
名前を入力したら、名前の右にある設定ボタンを押して、出てくるダイアログで「共有シートに表示」のボタンをオンにする。
そうすると、下の画像のように「『共有シート』 から 『任意』 の入力を受け取る...」の機能が追加されるので、『任意』をクリックして、URL を残して他の項目はオフにする。
続いて、ショートカットの入力をクリップボードにコピーというアクションを追加。
次にアクションの追加でFileMaker Go19」を選んで、「FileMaker Go スクリプトを実行」を追加。
「実行するスクリプトを含むファイルを選択します」の後の「ファイル」をクリックすると、先程開いていたファイルの名前が出てくるので、それを選択します。同様にしてスクリプトを設定します。
(ファイル名が出なくて、検索フィールドに文字を入れると必要なオプションが無いというエラーが出る場合は、FileMaker側の手順がうまくいっていないことが考えられます。)
できたショートカットの手順は下の画像のようになっているはずです。(引数は指定しません)
補足
引数渡しにしない理由
クリップボードを使わず、引数で渡す方法もありますが、あえてクリップボードを経由してURLを渡しているのは、このファイルをMac側で実行したい時、ショートカットアプリが使えないので、SafariでURLをコピーしてFileMakerのスクリプトを実行できるようにしたかったからです。
URLスキームでも実行できる
FileMaker側の手順で設定したファイルは、ショートカットだけでなく、URLスキームで実行できるので、次のようにURLを発行すると、同様の動きができるはずです。ですので、Mac側でも Safariの機能拡張やAppleScriptで FileMaker のスクリプトを実行させることができるはずです。
fmp://$/お気に入りサイト.fmp12?script=URL新規登録