VRコンテンツが端末の動きに連動しなくなった
Webサイトでパノラマビューアとして使っているkrpanoは、スマートフォンのジャイロセンサーを利用して、パノラマコンテンツを端末の傾きや加速度に合わせて再生できるジャイロ機能や、VRゴーグルを併用して没入体験を楽しめるVRモードに対応しています。
しかし、2019年の夏ごろからVRパノラマがジャイロ機能やVRモードが使えなくなっていることに気づきました。これは、端末やkrpanoの問題ではなく、iOSのセキュリティ強化によるものでした。iOS12.2であればSafariの設定で「モーションと画面の向きのアクセス」をONにする方法が使えますが、iOS13になってからはこの設定項目はなくなってしまいました。
requestPermissionを実装すれば良いというが…
「iOS」「ジャイロセンサー」「動かない」といったキーワードで調べてみると、同じような問題に遭遇している人が多くいることに気づきます。解決方法としては、Javascriptで requestPermission を実行してユーザーに「動作と方向」へのアクセスを「許可」させれば良いと。例えば、以下のようなスクリプトです。
function request_permission () {
if (DeviceMotionEvent &&
DeviceMotionEvent.requestPermission &&
typeof DeviceMotionEvent.requestPermission === 'function')
{
DeviceMotionEvent.requestPermission();
}
if (DeviceOrientationEvent &&
DeviceOrientationEvent.requestPermission &&
typeof DeviceOrientationEvent.requestPermission === 'function')
{
DeviceOrientationEvent.requestPermission();
}
}
そこで、このJavascriptを追加してみたものの、やはり動かない。それ以前に「動作と方向」のダイアログも表示されない。。。
さらに、krpanoのサポートサイトを見てみると、krpano-1.20.5 以上であれば、上のようなスクリプトを追加しなくてもジャイロ機能やVRモードを使えるはずなのに、私のWebサイトでは何故か動かない。謎は深まるばかりでした。
SSL設定していないWebサイトは「動作と方向」を使えない
そんな中、krpanoサイトのディスカッションの中で、前提としてWebサイトがSSL設定されている必要があるということが書かれていました。確かに私のサイトはURLが「https://〜」ではなく「http://〜」ということで、SSL設定されていません。これが原因でした。
利用中の@niftyのレンタルサーバ「La Coocan」ではSSL設定を追加することはできず、今後もSSLのサービスを提供する予定がない模様。@niftyは、インターネットが普及する前のNIFTY-Serve時代から30年以上の付き合いで残念ですが、SSL設定のできる別のレンタルサーバに引っ越すことにしました。