「IOS 13 deviceorientation」の版間の差分
提供: ディーズガレージ wiki
12行目: | 12行目: | ||
https://dz.plala.jp/cmb/permit/ | https://dz.plala.jp/cmb/permit/ | ||
[[ファイル:compass_design02.jpg|140px]] [[ファイル:compass_design.jpg|140px]] | [[ファイル:compass_design02.jpg|140px]] [[ファイル:compass_design.jpg|140px]] | ||
− | <br /> | + | <br /> |
<br /> | <br /> | ||
この情報は古くなっています。 | この情報は古くなっています。 |
2022年7月2日 (土) 17:41時点における版
デバイス認証プログラム再検討
2022.06 DeviceOrientationEvent使用 phpでtimestamp付きjsに変更 ユニークにして認証拒否対応 geolocation認証も追加 テスト https://dz.plala.jp/cmb/permit/test/ PWAアプリ https://dz.plala.jp/cmb/permit/![]()
![]()
この情報は古くなっています。
iOS 13でセンサー値取得方法が変更されました。
IOS 12.2 deviceorientationに追加する形で探ってみます。
必要な追加関数
function request_permission() {
if (
DeviceMotionEvent &&
DeviceMotionEvent.requestPermission &&
typeof DeviceMotionEvent.requestPermission === 'function'
) {
DeviceMotionEvent.requestPermission();
};
if (
DeviceOrientationEvent &&
DeviceOrientationEvent.requestPermission &&
typeof DeviceOrientationEvent.requestPermission === 'function'
) {
DeviceOrientationEvent.requestPermission();
};
};
実行可能なパターン
confirm
失敗する
if (confirm("センサーを有効にします")) {
request_permission();
} else {
alert("起動できません");
};
失敗するがアラート表示しない
button
成功する
<button onclick="request_permission()">センサーを有効にします</button>
べたなタッチイベントをAppleは要求してるように見える
都合いいことにセンサー値取得に失敗してる状態でも有効に切り替えできる
alertもどき
成功する
- iOS13以上はalertもどきhtml要素を挿入 > 表示
- センサーを有効にします > OK
- OKボタンをタッチイベントにしてrequest_permission()を実行
- ”動作と方向”へのアクセスを求めています > 許可
- 一度有効にしたドメインは次回有効になってる
- ↑iOS 12.2と同じsetTimeout後のセンサー値で判断
動作確認
スマホdeVR | deviceorientation devicemotion | |
宇宙マイクロ波背景放射VR | universal | deviceorientation geolocation |
スマホDEバーチャルモデル | universal | deviceorientation devicemotion |
shake! | universal | deviceorientation devicemotion |
SpaceColony | universal | deviceorientation |
V-Ray for Unity Babylon | universal | deviceorientation |
まとめ
ライブラリ
https://dz.plala.jp/svr/iOSdeviceorientationCheck.js https://dz.plala.jp/svr/iOSdeviceorientationCheck.css
設置
<link rel="stylesheet" href="https://dz.plala.jp/svr/iOSdeviceorientationCheck.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/ua-parser-js@0/dist/ua-parser.min.js"></script> <script src="https://dz.plala.jp/svr/iOSdeviceorientationCheck.js"></script>