| 
						 | 
						- <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>
 
 
  |