我想使用meteor / cordova在iPhone上显示当前的电池电量并做出反应。
This是我使用的插件。
这就是我想象它的工作方式:
export default class BatteryDetails extends Component {
constructor(props){
super(props);
this.currentBatteryLevel = 0;
function onBatteryStatus(status) {
this.currentBatteryLevel = status.level;
}
window.addEventListener("batterystatus", onBatteryStatus, false);
window.dispatchEvent(new Event('batterystatus'));
}
render() {
return (
<div>
Remaining: {this.currentBatteryLevel}
</div>
);
}
}
答案 0 :(得分:0)
我会选择更传统的东西,但我现在无法测试它:
export default class BatteryDetails extends Component {
constructor(props) {
super(props);
this.state = {
currentBatteryLevel: 0
};
window.addEventListener("batterystatus", (status) => this.onBatteryStatus(status), false);
window.dispatchEvent(new Event('batterystatus'));
}
onBatteryStatus(status) {
this.setState({ currentBatteryLevel: status.level });
}
render() {
return (
<div>
Remaining: { this.state.currentBatteryLevel }
</div>
);
}
}
答案 1 :(得分:0)
我认为我在PhoneGap项目中使用了该包(而不是Meteor项目),我遇到了batterystatus
事件的一些问题。我想是这样的:
第一次订阅活动时,会立即触发。下次订阅时它也会这样工作,但前提是您取消订阅了第一个事件监听器。如果你犯了这个错误(并忘记取消订阅),你需要重新启动应用程序(强制关闭它)。
但是,当您插入/拔下充电器时,事件总会被触发,因此这是测试它是否有效的便捷方式。