
先週、Safariの使い方と他のアプリやサービスへのリンクの保存方法を見直していたところ、よく使うブックマークレットをまとめて操作できる統合アクションメニューが欲しいことに気づきました。Safariにブックマークフォルダを作成すれば実現できますが、iPhoneではフォルダ操作が多すぎるため、それぞれのアクションに個別のアイコンを付けて視覚的に分かりやすくしたいと考えました。これは、Launch Center Pro(iPad版も対応)のリストとJavaScriptの機能をテストする良い機会だと思い、作業に取り掛かりました。
正直に言っておきますが、私の解決策は機能しますが、コードは美しくありません。Appleがアプリ間の情報共有方法を改善するまでは、URLスキーム、JavaScript、手動エンコードといったハックに頼るしかありません。私が考案した方法をカスタマイズしたい場合は、URLスキームを手動で編集し、すべてを自分でテストする必要があります。ブックマークレットの見た目を気にしないのであれば、どうぞご自由にお使いください。結果にはかなり満足しています。
出力結果は上の写真の通りです。Safariから他のアプリにリンクを共有したいときは、Safariの「共有」ボタンをタップすると、Launch Center Proのアクションリストが表示されます。このリストは画面中央に大きく表示され、Tweetbot、Fantastical、Draftsなどのアプリにリンクを送信するためのボタンも配置されています。このアクションメニューはiPhoneとiPadの両方で動作し、さらに重要なのは、Launch Center Proのアクションを一切ベースとしていない「ヘッドレス」ブックマークレットであるため、追加のLaunch Center Proアクションをインストールする必要がないことです。
Safari でブックマークレットとして保存できる 1 行のコードは GitHub で入手できます。ただし、ブックマークレットは必要に応じて変更する必要があります。そこで、私が編集していたときの Drafts での表示は次のようになります。
ブックマークレットで何が起こっているかをよりよく理解できるように、コメント付きの複数行のコード内訳も GitHub Gist として提供されています。
既存のアクションに基づかないリストを起動するために私が採用している解決策は、 Launch Center Pro を「騙して」自身にリンクさせることです。URLlaunchpro://?url=
スキームを 2 回使用することで、Launch Center Pro に Launch Center Pro の URL を開いてリストを表示するように指示できます。なぜ 2 段階の URL スキームをネストせずにアプリを起動してリストを表示するように指示できないのかは分かりませんが、現状はこうなっています。Launch Center Pro に自身を開くように指示しているのです。
アクションはブックマークレットの中核部分であり、Launch Center Proのリスト構文に従ってフォーマットされています。各セクションはパイプ(縦棒)で区切られ、URLスキームはSafariで表示しているURLを他のアプリに送信するために使用されます。ご覧のとおり、ブックマークレットは複数レベルのURLスキームを使用する必要があるため、多くの手動エンコードが必要です。
標準のリスト表示に2つの簡単な調整を加えました。とても気に入っています。まず、共有しているURLがリストのタイトルに表示されるようになりました。Launch Center Proは長いURLを省略してしまうので、あまり良い解決策ではありませんが、何もないよりはましです。次に、アクション名の横に絵文字を使うことで、アクションを少し視覚的に分かりやすくしました。これも完璧ではありませんが(Launch Center Proがリスト内のURLスキームに小さなアプリアイコンを表示してくれるともっと良いのですが)、色分けは役に立ちます。
アクション メニューがどのように機能するかを説明するビデオを作成しました。
このアクションメニューには改善の余地がいくつかあります。ブックマークレットを手動で作成・編集するのはユーザーエクスペリエンスに悪影響を及ぼします。必要なURLスキームを組み立てるより良い方法を誰かが考えてくれるかもしれません。アクションにはx-callback-urlのサポートを実装していません(Safariに手動で戻っているのがわかります)。これは追加のエンコードが必要になるためですが、おそらく実装可能でしょう。Webページのタイトルの共有サポートは削除する必要がありました。タイトルにパイプが含まれるページをLaunch Center Proに送信すると、リストの構文が乱れる可能性があるためです。
ブックマークレットはちゃんと機能していて、URLを素早く共有するためによく使っていますが、変更する際に注意しないと簡単に壊れてしまう可能性があります。JavaScriptベースなので、同じコードでMr. ReaderやEditorialなどのアプリから同じメニューを呼び出すこともできます。
ご提案やその他のフィードバックがございましたら、お気軽にご連絡ください。
追加コンテンツと特典にアクセスする
Club MacStories は 2015 年に設立され、ほぼ 10 年間にわたって毎週独占コンテンツを提供してきました。
毎週、毎月の電子メール ニュースレターから始まったものが、すべての MacStories ファン向けに設計されたメンバーシップ ファミリーに成長しました。
詳細については、こちらおよびクラブの FAQ をご覧ください。
Club MacStories : アプリ、ヒント、自動化ワークフロー、長文執筆、MacStories Unwind ポッドキャストへの早期アクセス、定期的な景品など、盛りだくさんの情報を満載した、電子メールと Web 経由の週刊および月刊ニュースレター。
Club MacStories+ : Club MacStories が提供するすべての機能に加え、アクティブな Discord コミュニティ、クラブの過去のカタログ全体を閲覧するための高度な検索機能とカスタム RSS 機能、ボーナス コラム、多数のアプリ割引などが含まれます。
Club Premier : 上記のすべてに加え、早期に、広告なしで、高ビットレートのオーディオで配信される当社の主力ポッドキャストの拡張バージョンである AppStories+ が含まれます。