|                                                                                                                                           |  | <template>	<view class="yingbing-battery">		<view class="yingbing-battery-wrapper" :style="{			'border-color': color		}">			<view class="yingbing-battery-content">				<view class="yingbing-battery-content-value" :style="{					'background-color': color,					width: value + 'px'				}">				</view>			</view>		</view>		<view class="yingbing-battery-top" :style="{			'background-color': color		}"></view>	</view></template>
<script>	const max = 16	export default {		inject: ['getColor'],		computed: {			color () {				return this.getColor()			}		},		data () {			return {				value: max			}		},		// #ifdef APP-PLUS
		beforeDestroy() {			if ( this.recevier ) {				plus.android.runtimeMainActivity().unregisterReceiver(this.recevier)			}		},		// #endif
		created () {			this.getBattery()		},		methods: {			getBattery () {				// #ifdef H5
				//window.navigator.getBattery只能在安全环境下(比如:https file:///url)使用,判断一下避免报错
				window.navigator.getBattery && window.navigator.getBattery().then((res) => {				    // 电池电量在0到1之间,因此我们将其乘以100得出百分比
				    this.value =  res.level * max				});				// #endif
				// #ifdef MP-WEIXIN
				wx.getBatteryInfo({					success: (res) => {						this.value = (res.level / 100) * max					}				})				// #endif
				// #ifdef APP-PLUS
				uni.getSystemInfo({					success: (res) => {						if ( res.osName == 'android' ) {							const main = plus.android.runtimeMainActivity()							const Intent = plus.android.importClass('android.content.Intent');							this.recevier = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', { 								onReceive: (context, intent) => { 							       let action = intent.getAction(); 							       if (action == Intent.ACTION_BATTERY_CHANGED) { 							           	let level = intent.getIntExtra("level", 0); //电量 B5教程网 
										this.value = (level / 100) * max										main.unregisterReceiver(this.recevier)//销毁注册广播
										//let voltage = intent.getIntExtra("voltage", 0); //电池电压 
										//let temperature = intent.getIntExtra("temperature", 0); //电池温度 
							           //如需获取别的,在这里继续写,此代码只提供获取电量 
							       } 							    } 							}); 							const filter = plus.android.newObject('android.content.IntentFilter', Intent.ACTION_BATTERY_CHANGED); 							main.registerReceiver(this.recevier, filter);						} else if ( res.osName == 'ios' ) {							const UIDevice = plus.ios.import("UIDevice");							const dev = UIDevice.currentDevice(); 							if (!dev.isBatteryMonitoringEnabled()) { 							    dev.setBatteryMonitoringEnabled(true); 							} 							let level = dev.batteryLevel();							this.value = level * max						}					}				})				// #endif
			}		}	}</script>
<style scoped>	.yingbing-battery {		/* #ifndef APP-NVUE */		display: flex;		/* #endif */		flex-direction: row;		align-items: center;		opacity: 0.5;	}	.yingbing-battery-wrapper {		width: 20px;		height: 9px;		border-width: 1px;		border-style: solid;		padding: 1px;		/* #ifndef APP-NVUE */		display: flex;		flex-direction: column;		box-sizing: border-box;		overflow: hidden;		/* #endif */	}	.yingbing-battery-content {		flex: 1;		/* #ifndef APP-NVUE */		display: flex;		flex-direction: column;		box-sizing: border-box;		overflow: hidden;		/* #endif */	}	.yingbing-battery-content-value {		height: 5px;	}	.yingbing-battery-content-value-text {		font-size: 8px;	}	.yingbing-battery-top {		width: 2px;		height: 5px;	}</style>
 |