我需要创建一个应用程序来监听手机音量按钮的事件。就我所能找到和测试的而言,一个带有javascript的简单页面不会触发这些事件,使用如下内容:window.addEventListener('keydown', keyDownHandler)
让它成为PWA会改变什么吗?该要求仅适用于Android。当应用程序关闭或手机锁定时触发是一大优势。
我认为最简单的替代方案是React Native。对吗?
有多个平台可以对此进行存档,我认为最简单的方法是:
1-离子型:
它基于cordova
,是您已经使用的PWA
的壁橱平台,您可以从这里使用此库处理音量按钮。
cordova-plugin-volume-buttons
。
window.addEventListener("volumebuttonslistener", onVolumeButtonsListener, false);
function onVolumeButtonsListener(info){
console.log("Button pressed: " + info.signal);
}
2-React Native
这将给你最好的性能,你可以在这里使用这个库处理音量按钮。
react-native-volume-control
import VolumeControl, {
VolumeControlEvents
} from "react-native-volume-control";
VolumeControlEvents.addListener(
"VolumeChanged",
this.volumeEvent
);
您可以使用AppState
检查应用程序是否关闭或转到后台,例如:
import {AppState} from 'react-native';
useEffect(() => {
AppState.addEventListener('change', handleAppStateChange);
// remove subscription
return AppState.removeEventListener('change', handleAppStateChange);
}, []);
const handleAppStateChange = (nextAppState) => {
// closed
if (nextAppState === 'inactive') {
console.log('the app is closed');
} else if (nextAppState === 'background') {
console.log('the app on background');
}
}