先日、iPhoneのショートカットアプリを使ってJavaScriptであるコードを書いていたのですが、完成後にショートカットが実行できない状況に陥りました。
プログラムのコードは何度見直しても間違っておらず、原因不明だったのですが無事に解決したのでその時の内容を記事にします。
iPhone(iPad)の「ショートカット」アプリで何かのプログラムを自作したあと、ショートカットを押しても反応しない、実行されないという時にご参考下さい。
プログラムに記述ミスが無いならショートカットアプリの不具合が濃厚です。
ショートカットが実行されない、無反応な時の確認
iPhone(iPad)の「ショートカット」アプリで自作したショートカットが動かない時に確認していただきたい内容です。
今回、ショートカットアプリの「WebページでJavaScript」を実行というアクションを使って、共有シートからショートカットを呼び出そうとしたところ、何度押しても反応しないという状態になりました。
状況をわかりやすく説明するためにGIFを用意しました。
自作したショートカットを押しても何の反応もありません…。
実行時の確認やチェックマークどころか、エラーすら出ないという状態です。
実は以前にも同じような現象に陥ったことがあり、これで3回目くらいです。3回も起こるならそれほどレアなケースでもないのでは?と思いましたので記事にします。
これまでにiOS14、iOS15、iOS16で同じ問題が起こった経験もありますので...。
このような状態に陥った時に試していただきたい内容は以下の2点です。
- iPhone(iPad)の再起動
- プログラムコードの再確認
これが一概に解決策とは言えないのですが、経験上この2つが有効です。
まず試してほしいiPhoneの再起動
自作したショートカットの内容(プログラム)を確認するよりも前に、まず試していただきたいのがiPhone(iPad)の再起動です。
ショートカットを押しても反応せず実行されない時や、ショートカットが表示されない時は「ショートカット」アプリで何らかの不具合が発生している可能性大です。
このようにショートカットの調子が悪い時はiPhoneを再起動すれば大体治ります。
今回はSafariからショートカットを呼び出していますが、Safariの再起動では治りませんでした。その後iPhoneを再起動すればショートカットを普通に実行できました。
再起動方法が分からない方はAppleの公式サイト(↓)に詳しく載っています。
プログラムコードの記述自体にミスがある可能性もありますが、どこかのサイトからコピペした場合はコードが間違っている可能性は低いです。僕自身いつもコードから疑うのですが、結局過去3回ともiPhoneの再起動で治っています。
再起動でダメならプログラムを確認する
iPhone(iPad)の再起動で大体治るはずですが、プログラムコードやショートカットの作成方法(変数、値の受け取り)が間違っていてももちろんダメです。
本体を再起動してもショートカットが実行されない時はコードを再確認しましょう。
ショートカットを編集するには、ショートカットアプリを開いてショートカット名の上に表示されている編集ボタン()を押せばOKです。
JavaScriptを例に挙げるとコードで失敗しそうな箇所は以下です。
- プログラム行の最後のセミコロン(;)が抜けている。
- プログラムの最後に完了ハンドラ
completion(result)
などが抜けている。
こちらも詳しい使い方や仕様などはAppleの公式サイト(↓)に掲載されています。
注意点としては「ショートカット」アプリの場合、プログラムが間違っていると必ずエラーが出るというわけではないようです。今回、意図的にエラーを発生させようと記述ミスがあるJavaScriptを書いて実行してみましたが、無反応で実行されないだけで、エラーの表示は出ませんでした。
パソコンのブラウザなら1発でエラーになるコードでも、ショートカットアプリなら無反応なだけという事もあるようなのでデバッグは少し難しいかもしれません。
なお、ショートカットが最低限動けばチェックマークが出ます。
ただしプログラムにエラーがあっても、実行さえされればこのチェックマークは出るようです。チェックマークが出ても値が取れていないというのは普通に起こります。
必要に応じてalert()
などで確認しましょう。
どこがダメという説明はしようがないのでこの辺で...
まとめ
以上、iPhone(iPad)のショートカットアプリで自作したショートカットを押しても反応しない、実行されないという時に確認したい内容でした。
とりあえずiPhoneを再起動してみて、ダメならコードと睨めっこという感じです。
使用するアクションやコードによるのであまり詳しい説明ができなく、なんとも歯切れが悪い感じになってしまいましたが、何かの参考になれば幸いです。