ウェブフロント
- angular
- corewebvitals
- editorconfig
- gatsby
- hls
- html
- javascript
querySelectorAllで取得した要素は配列ではないらしい
JavaScript 配列内のオブジェクトの更新ってどうする?
デバッグ関数とかnullチェック関数をutil/index.tsにおいとけば楽なことに今頃気づいた。
ブラウザからジャイロセンサーを使ってみる
JS 画像のアップロード、プレビュー機能を実装
「数値から各桁の値を取り出す処理」って言われたら数学的な処理が一番に思い浮かぶけど、JSならそんなことなかった。
Callback時代の関数をPromise化する
個人的実装されてほしいECMA Script Proposal
JavaScriptのprototypeを使う
音声をなみなみさせる
AudioWorkletとAudioWorkletProcessorを使って音声のビジュアライゼーション
- next
- nuxt
- playwright
- prettier
- react
- reactnative
- tensorflowjs
- tools
- typescript
- wasm
- websocket
- ポエム
- 開発環境
サーバー
その他
ブラウザからジャイロセンサーを使ってみる
ジャイロセンサー使う
こちらのツイート参照
https://twitter.com/fukke0906/status/1264081934856019970
検証環境
iphone: ios13以上 safari, chrome
iphone: ios13以上 safari, chrome
コード
const requestDeviceMotionPermission = async () => {
// ジャイロセンサーが使えるかどうか
if (window.DeviceOrientationEvent) {
// ios13以上
if (
DeviceOrientationEvent.requestPermission &&
typeof DeviceOrientationEvent.requestPermission === "function"
) {
const permission = await DeviceMotionEvent.requestPermission();
if (permission === "granted") {
window.addEventListener("deviceorientation", deviceorientation);
} else {
window.alert("許可されていません");
}
} else { // ios13未満
window.addEventListener("deviceorientation", deviceorientation);
}
} else {
window.alert("対応していません");
}
};
let alpha = 0, beta = 0, gamma = 0;
const deviceorientation = (dat) => {
// iphoneとandroidで向きが逆なので-1を掛けて任意に修正
alpha = dat.alpha * -1;
beta = dat.beta * -1;
gamma = dat.gamma * -1;
};
const handlePress = async () => {
try {
await requestDeviceMotionPermission();
} catch (e) {
console.error(e);
window.alert("対応していません");
}
const timer = window.setInterval(() => {
document.getElementById("txt").innerHTML =
`alpha: ${alpha}<br>beta: ${beta}<br>gamma: ${gamma}`;
});
};
注意点
セキュア(https)でないとジャイロセンサーの認証ができないです。
実験方法
$ ifconfig # ipAdressの確認
$ php -S {ipAddress}:8080 # サーバーの立ち上げ
$ ngrok http {ipAddress}:8080 # 穴をあける
で実機からアクセスって感じでしました。
Thanks you for reading.