iPhoneのSafariをスーパーリロードする為のショートカットの作成方法です。
Safariの共有シートからこのショートカットを呼び出せば、キャッシュを無視してWebページを読み込むことができるというものです。
実は過去にも同様のスーパーリロード用ショートカットの作成は解説しているのですが、iOS16からショートカットのUIが大幅に変更されているので、こちらに新しくやり方をまとめました。
今回iPhone12で動作確認しました。iPadでも多分使えますが未確認です。
この記事の目次
Safariをスーパーリロードするショートカットの作成
はじめに...Apple社のブラウザであるSafariには、Webサイトのキャッシュを無視してページを再読み込みする「通称:スーパーリロード」の機能はデフォルトで用意されていません。この機能をiOS16で用意する方法について書きます。
Safariをスーパーリロードする方法としては、
- Safariの設定からキャッシュを削除する
- ショートカットを使用したスーパーリロード機能を作る
の2つがありますが、後者の方法です。
前者の「Safariの設定からキャッシュを削除する方法」については過去の記事で解説しています。また、iOS15以前の環境でSafariのスーパーリロード用ショートカットを作る方法も同じく過去の記事(↓)に書いています。
- iPhone Safariのスーパーリロード方法!キャッシュクリア、専用ショートカットの作成。
続きを見る
iOS16でショートカットの作成方法(UI)が大きく変更されましたので、この記事でiOS16~でSafariのスーパーリロードショートカットを作る方法をまとめた次第です。
では早速参りましょう・w・
iOS16でSafariのスーパーリロード用ショートカットを作成する方法
作業の前に予習がてらのポイントを書いておきます。
Safariのスーパーリロード用ショートカットを作る時は以下の点に注意して下さい。
- 使用するアクション「WebページでJavaScriptを実行」には許可が必要。
- ショートカットは共有シート()から呼び出す必要がある。
- JavaScriptが受け取る値は「SafariのWebページ」にする。
ポイントは上記のような感じですが、この記事ではそれぞれに対応するために順番に作業していきます。詳しい画像付きなのでご安心を・w・
では、スーパーリロード用のショートカットを作成していきましょう。
ショートカットの新規作成
まずiPhoneに入っている「ショートカット」アプリを起動します。
ショートカット
Apple無料posted withアプリーチ
ショートカットアプリは初めから入っているはずなので、別途インストールする必要はありません。ない!という方はストアからインストールして下さい。
ショートカットを開いたら早速ショートカットを新規作成しましょう。
手順は以下の通りです。(画像を押せば拡大表示できます。)
- 「ショートカット」アプリを開き、+を押す。
- +アクションを追加を押す。
- アクション一覧から「Web」を選ぶ。
- Webページの項目で「WebページでJavaScriptを実行」を選ぶ。
続いてスーパーリロード用のコードをJavaScriptで書きます。
ここで、ショートカットアプリの設定で「スクリプトの実行を許可する」という項目をONにしていないとコードが書けないので、これをONにします。
サンプルのコードが表示されている方は次のステップは飛ばして下さい。
スクリプトの実行を許可する
今回使用するアクションの「WebページでJavaScriptを実行」を実行するためには、ショートカットアプリに「許可」を与えないと実行できません。
スクリプティングアクションが無効になっているため、このアクションは実行できません。
と出ている人は「設定を開く」からショートカットの設定に進み、実行許可を与えて下さい。今回は「スクリプトの実行を許可」の項目をONにするだけで大丈夫です。
- 「設定を開く」に進む。
- ショートカットの設定で「スクリプトの実行を許可」にチェックを入れる
この辺りもiOS14→iOS15で変更されています。
その時の変更点や、ONにできる各項目について気になる方は関連記事もどうぞ。
「スクリプトの実行を許可」をONにしたら再びショートカットに戻りましょう。
スーパーリロード用のコードを書きこむ
JavaScriptのコードが書けるようになったら、予め用意されているサンプルコードを全部削除します。
続いて以下のコードをコピペして下さい。
completion(window.location.reload(true));
- JavaScriptを書き込んだら、完了を押してショートカットを一旦閉じる。
上記のコードを書きこんだら「完了」を押して一度ショートカットを閉じます。
コードを書きましたがこの状態ではまだ使えません。
というのも、どこかのタイミングでこのショートカットを「共有シートに表示」するように設定しないといけませんので、このタイミングでやります。
ショートカットを共有シートに表示する設定
冒頭のポイントでも書いた通り、今回のスーパーリロードショートカットはSafariの共有シート()から呼び出さないと動かないので、この設定を行います。
- ショートカットを長押しして出るメニューから「詳細」に進む。
- 「詳細」の中にある「共有シートに表示」をONにする。
このショートカットを長押ししてから「共有シートに表示」という作業内容がiOS16で一番変更されたポイントかもしれません。
項目の設定場所が変わってるんですねぇ…
作成途中のショートカットを完成させる
ショートカットの設定から「共有シートに表示する」の項目をONにしたら、一度閉じた作成途中のショートカットを完成させましょう。
- 先ほど閉じた作成途中のショートカットを編集する。
ショートカットを編集するには、ショートカットアプリを開きショートカット名の上にある編集ボタン()を押せばOKです。
- “共有シートから任意の入力を受け取る”の「任意」の部分を押す。
- 項目のチェックを「SafariのWebページ」のみに絞る。
共有シートに表示するように設定すれば、ショートカットの入力元が「Webページ」から「共有シート」になっているはずです。ここで「任意」という部分を押し、項目の選択画面から「SafariのWebページ」以外のチェックを全て外しましょう。
- “Webページに対してJavaScriptを実行”の「Webページ」の部分を押して、これを「ショートカットの入力」に変更する。
- “ショートカットの入力に対してJavaScriptを実行”の「ショートカットを入力」の部分を押し、内容がSafariのWebページになっている事を確認する。
これが結構ややこしいので少し補足します。
上記作業の補足
ショートカット冒頭にある値の入力の部分を、
共有シートからSafariのWebページの入力を受け取る
という形に変更しましょう。その後「Webページ」の部分を、
ショートカットの入力(中身はSafariのWebページ)に対してJavaScriptを実行
という形に変更します。ややこしいですが真似て下さい。
以上14番までの作業を行えば、Safariのスーパーリロード用ショートカットの準備完了です。最後に「完了」を押してショートカットの作成を終了しましょう。
スーパーリロード用ショートカットの使い方
最後に今回作成したSafariのスーパーリロード用ショートカットの使い方です。
作成したショートカットを使うには、スーパーリロードしたいWebページをSafariで開き、共有シート()を開きます。
すると共有シート内(一番下)に「WebページでJavaScriptを実行」という項目が出ているかと思います。これが今回作成したショートカットです。
あとはこれを押せば、Webページがスーパーリロードで読み込まれます。
初回実行時の許可について
なお、今回使用したアクションである「WebページでJavaScriptを実行」は初回実行時に許可を与える必要があります。
許可はサイトごとに初回だけ尋ねられます。
以前の記事にこの警告文はかなり危険では?というお問い合わせをいただきましたので、このメッセージの内容も別の記事にまとめています。
気になる方は関連記事をお読みいただきたいのですが、今回は悪意のあるJavaScriptではないので許可していただいて大丈夫です。
「許可」を押せば、Webページがスーパーリロードできます!
チェックマークが出ればスーパーリロード完了です。
ショートカット名の変更について
今回は作業手順の関係で、ショートカット名が「WebページでJavaScriptを実行」という分かりにくいものになったままなので、最後に変更しておきましょう。
ショートカット名の変更は、ショートカットの編集()から、ショートカット名のプルダウンを押したメニュー内に「名称変更」という項目があるのでコチラから変更できます。
名称変更すれば、共有シートに表示されるショートカット名も変わります。
なので「Safariスーパーリロード」などの名前にしておけば、他のショートカットがあっても見分けることができて便利です。
ショートカットが共有シートに表示されない時
まれにショートカットが表示されない事があります。
もしショートカットが表示されない時はiPhoneを再起動し、共有シートに表示がONになっているか確認して下さい。
実はこの記事を執筆するにあたって、このショートカットを作成した時も共有シートに表示されなかったのですが、iPhoneを再起動することで治りました。
コチラも過去に起こった出来事で、別の記事(↓)に対処法を書いています。
過去にも同じトラブルが起こっているので、もしかしたらショートカットアプリでは割とメジャーなバグ?なのかもしれません。再起動すれば大体治りますが…。
まとめ
以上、iOS16~を搭載しているiPhoneでスーパーリロード用のショートカットを自作して、Safariをスーパーリロードする方法でした。
この方法を使えばいちいちSafariの設定からキャッシュデータを削除しなくても1発でスーパーリロードが出来ます。Web開発者の方などはCSSやJavaScriptの変更時に便利だと思います。ぜひお役立て下さい・w・
iOS14、15は1つの記事にまとめて書いたのですが、iOS16はUIが大幅変更されているので別の記事として今回執筆しました。
うちは1人でやってるので、世の中のアップデートについていけませんw
ではではこの辺で・w・