iOSのオートメーション実行時に「Webページなし」というエラーが出て実行できない時の確認です。
以前、ショートカットアプリで同じエラーが出た時の解決策を書いたのですが、その記事のコメント欄でオートメーションに関しての質問をいただきましたのでこちらの記事にまとめます。
オートメーションで"WebページでJavaScriptを実行"というアクションを使おうとしている方向けの記事となります。
結論:オートメーションでは"WebページでJavaScriptを実行"は出来ません。
この記事の目次
オートメーションで「Webページなし」が出る
-
- 【解決】iPhoneのショートカットで「Webページなし」が出る。Webページが入力として渡されなかったため…って何?
続きを見る
以前書いた記事(↑)では、ショートカットアプリで「Webページなし」というエラーが出る時はショートカットの作り方が間違っており、作り直せば動きました!という内容の記事を書いたのですが、コメント欄に以下のような質問をいただきました。
【匿名】さんより
コメント失礼致します。
オートメーションから今回のようなショートカットを実行することはできるのでしょうか。
Safariの共有シートからショートカットを選択するという手順はあくまでも手動で実行することがあるのですかね…。もしご存知であれば教えてください。
このような内容です。
この記事をご覧の方はご存じかと思いますが、ショートカットからJavaScriptを実行するにはSafariの共有シートを開き、実行するという"手動作業"が必要となります。
このSafari上でショートカットを開く→実行という操作をオートメーションによって自動化したいという内容ですね・w・
という事で色々テストしてみました!
実はこのコメントをいただいた時点で、僕はオートメーションを使ったことが無かったので「え?出来ないの?」という状態だったのですが、実際に動かしてみると質問の意味が良く分かりました。
オートメーションでも「Webページなし」というエラーが出るんですね…
知りませんでした。
色々試した結果、オートメーションからJavaScriptの実行は出来ないようです。
オートメーションでJavaScriptが実行できない
実際どんな感じにWebページなしが出るのかテストした結果です。
まずショートカットアプリでオートメーションを作成します。
- オートメーションの作成
- WebページでJavaScriptを実行を選択
起動タイミングは何でもよかったのですが、"電源に接続したとき"にしました。
アクションは"WebページでJavaScriptを実行"を選択します。
そして実際に電源を繋いで起動させてみます…
電源を繋ぐとオートメーションが起動するので、通知をタップします。
実行画面から実行をタップします。
オートメーションを実行できませんでした
"iPhoneが電源に接続したとき"でエラーが発生しました:Webページなし…
と出て実行できません…出ましたね。Webページなし。
以前も困らされたこのエラー…内容がアバウトすぎて意味不明です。
ショートカットアプリの時は"ショートカットの入力"を"SafariのWebページ"として渡してあげれば解決したので、シンプルなJavaScriptのコードにしてみたり、入力値が不要なJavaScriptにしたりしたのですが、いずれも解決しませんでした。
そもそもショートカットアプリのように"ショートカットの入力"が使用できません。
同じアプリなのになぜオートメーションではJavaScriptが実行出来ないのか…
"WebページでJavaScriptを実行"はSafariから実行しないと使用できない
「Webページなし」の原因はWebページ(Safari)から値を受け取れていない時に出るエラーだと思ったので、変数なども使って"WebページでJavaScriptを実行"というアクションに値を渡したりもしてみたのですが、ことごとくダメでした。
そしてアプリ内で核心に迫る"メモ"を発見しました。
Web-Safariのアクション一覧にて、各アクションの横に!マークがあるのを発見。
今回問題となっている"WebページでJavaScriptを実行"の!マークを押してみます。
するとメモに以下のようにありました。
Safari Webページ項目は、ショートカットをSafariでアクション拡張機能として実行するときのみ使用できます。
このアクション拡張機能というのが"共有シート"なのだと思います。
(確信はないですが…それ以外考えられない…)
つまり"WebページでJavaScriptを実行"はSafariの共有シートから実行しないと動かない。という事になります。
え~!!こんな大事な内容がメモとは…
参考になるコメント
ここで、以前の記事にいただいていた別のコメントを思い出しました。
【ぼの】さんより
NFCタグを読み取った際のオートメーション登録で色々と調べている際にこちらにたどり着きました。
あるサイトへの自動ログイン等を試していたのですが、おかげさまで「Webページに対してJavaScriptを実行」は、記載されている通りSafariの共有メニューからでないと機能しないという答えにたどり着くことができました(オートメーションの選択肢に出てくるのでドツボにはまっていました笑)
ありがとうございましたmm
頂いたこちらのコメントが本記事の内容の全てかと思います。
オートメーションの選択肢に"WebページでJavaScriptを実行"というアクションが出るのに、このアクションはSafariの共有シートからしか使用できないということ…
(ぼのさんのコメントの意味がやっと理解できました←)
ということでオートメーションで"WebページでJavaScriptを実行"というアクションを使ってJavaScriptを自動的に実行することは現状出来ないようです。
まとめ
最後に公式サイトにはマジック変数とやらを使えばどうのこうのと書かれています。
が、これを使ってオートメーション化できるのかはまだテストしていません。
皆さんダメなようなので、基本は出来ないのでしょう…
何か良い案を知っておられる方は是非教えて下さい!
最後に、コメントをいただいた方にこの場(機会)をお借りしてお礼申し上げます。
コメントありがとうございました!