
そうですね。楽しい実験をしてみましょう。
今日、デフォルトブラウザであるiOS版ChromeからSafariにURLを素早く送信したいと思いました。SafariからChromeへ送信する方法はいくつかあることは知っていますが、今回はその逆、つまりChromeからSafariへ送信したいと考えていました。Mr. Readerのカスタムアクションをインストールする必要があり、Chromeでダウンロード可能なファイルをタップするとエラーが発生していました。そこで、Chromeで現在開いているウェブページをSafariに送信するブックマークレットを作成できるのではないかと考えました。
ちょっと待ってください。iOSには、Safariでウェブリンクを開くためのURLスキームが文書化されていません。まあ、スキーム自体を除いては。様々なブックマークレットのアイデアをテストしていたところ、Jon Abramsのブックマークレットでを にhttp://
置き換えることで、ChromeがリンクをSafariに強制的に送信できるのではないかと考えました。しかし、iOS版Chromeでこのトリックを実行すると、以下のようになります。googlechrome
http
javascript:window.open('http'+location.href.substring(4));
…Chrome で新しいタブを開くだけです。
最終的に私が使ったのは、Chromeのx-callback-urlサポートを利用してリンクをSafariに開くという、非常に興味深いハックです。Cormac Relf氏のスクリプトにインスピレーションを受けました。昨日、彼がPythonista向けに作成した別のスクリプトを見せてくれた時に、このスクリプトを発見しました。
javascript:window.location='googlechrome-x-callback://x-callback-url/open/?url='+encodeURIComponent(location.href)+'&x-source=Safari&x-success='+encodeURIComponent(location.href);
上の画像のように、Chromeに…自体を使って新しいタブを開くように指示しています。少なくとも理論上は、エンコードされた文字location.href
列を使ってSafariを呼び出すのがポイントです。Safariはhttp://
、今回のケースではChromeが「外部」で開くスキームに登録されています。GoogleのURLスキーム仕様に従って表示するx-source
必要があります。…に指定した名前は、x-source
Chromeの「戻る」ボタンとして表示されます(上の画像を参照)。
これは非常に洗練されておらず、最終的には欠陥のある解決策です。これを「機能させる」には、以下のことが必要です。
- Chrome にはブックマーク バーがないため、ブックマークレットの名前を入力します。
- 何も起こりません。
- Chromeを閉じます。
- 再度開きます。
- ワイルドな新しいタブが登場!
- Safariボタンをタップしてください。とても効果的です。
- Safari はリンクを起動し、Chrome が開こうとした追加のタブを閉じます。
一体何が起こっているのでしょうか?JavaScriptを使ってChromeにタブを強制的に開かせたのですが、ブックマークレット内のx-callback-urlを使ってこれを行うと、なぜかかなり奇妙な動作が発生します。Chromeを閉じて再度開かない限りタブは開かないため、このブックマークレットの本来の目的であるSafariでWebページを素早く開くという目的が部分的に損なわれてしまいます。しかし、この面倒な処理にもかかわらず、「Safariボタン」付きの新しいタブが作成され、それをタップするとSafariが起動し、Chromeのタブを閉じることができます。
私の結論は、解決策が 3 つあるということです。a) Chrome から Safari への直接的なブックマークレットを作成することはできません。b) 私がまだ調査していない別の方法で可能です。c) x-callback-url ハックを使用して可能ですが、方法は異なります。
アイデアがあれば、Twitter で私に連絡してください。
追加コンテンツと特典にアクセスする
Club MacStories は 2015 年に設立され、ほぼ 10 年間にわたって毎週独占コンテンツを提供してきました。
毎週、毎月の電子メール ニュースレターから始まったものが、すべての MacStories ファン向けに設計されたメンバーシップ ファミリーに成長しました。
詳細については、こちらおよびクラブの FAQ をご覧ください。
Club MacStories : アプリ、ヒント、自動化ワークフロー、長文執筆、MacStories Unwind ポッドキャストへの早期アクセス、定期的な景品など、盛りだくさんの情報を満載した、電子メールと Web 経由の週刊および月刊ニュースレター。
Club MacStories+ : Club MacStories が提供するすべての機能に加え、アクティブな Discord コミュニティ、クラブの過去のカタログ全体を閲覧するための高度な検索機能とカスタム RSS 機能、ボーナス コラム、多数のアプリ割引などが含まれます。
Club Premier : 上記のすべてに加え、早期に、広告なしで、高ビットレートのオーディオで配信される当社の主力ポッドキャストの拡張バージョンである AppStories+ が含まれます。