更新记录
v1.0.0(2023-09-11)
V1.0.0 (2023-09-11)
First release
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 12.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:支持 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
系统设置
NG_SystemSetting提供了一些常用的系统设置API。当前1.0.0版本仅支持Android
功能介绍
- 音量设置以及获取和监听(包括通话音量、系统音量、铃声音量、音乐音量、闹钟音量、通知音量)
- 屏幕亮度调节 (包括系统、App亮度获取和设置、获取当前屏幕模式,屏幕模式切换)
- WIFI (包括WIFI手动开启关闭,获取wifi状态,监听wifi状态,获取当前连接上的wifi信息)
- 地理定位 (包括监听GPS开关状态变化,GPS模式变化)
- 蓝牙 (包括手动开启和关闭蓝牙, 获取蓝牙开关状态)
- 飞行模式 (包括监听飞行模式开关变化)
- 设置页面跳转 (包括WIFI设置、GPS开关设置、蓝牙设置、系统权限设置、当前应用信息、飞行模式开关设置)
使用方法
<template>
<view>
<view style="background-color: aliceblue;">
<view>
当前连接上的wifi网络:
</view>
<view>
{{wifiInfo}}
</view>
</view>
<view style="background-color: aquamarine;">
<view>
音量信息:
</view>
<view>
{{volumeInfo}}
</view>
</view>
<button @tap="getCurrentConnectWifi">获取当前连接上的wifi</button>
<button @tap="activeListener('wifi')">监听wifi状态变化</button>
<button @tap="activeListener('bluetooth')">监听蓝牙状态变化</button>
<button @tap="activeListener('location')">监听GPS开关变化</button>
<button @tap="activeListener('locationMode')">监听GPS模式变化</button>
<button @tap="activeListener('airplane')">监听飞行模式开关变化</button>
<button @tap="activeListener('volume')">监听系统声音变化</button>
<button @tap="getAirPlaneStatus">获取飞行模式状态</button>
<button @tap="getGpsStatus">获取GPS是否开启</button>
<button @tap="getLocationMode">获取GPS模式</button>
<button @tap="getBlueToothStatus">获取蓝牙是否开启</button>
<button @tap="getScreenMode">获取屏幕模式</button>
<button @tap="getSystemBrightness">获取系统亮度</button>
<button @tap="getAppBrightness">获取App亮度</button>
<button @tap="getWifiStatus">获取wifi状态</button>
<view>
<view>切换屏幕模式 <switch :checked="autoLight" @change="(event)=>{
autoLight = event.detail.value
setScreenMode()
}"></switch></view>
</view>
<button @tap="openAppSystemSetting">打开当前应用信息</button>
<button @tap="openSystemPermission">打开修改系统权限设置</button>
<button @tap="airPlaneSwitch">跳转飞行模式开关设置</button>
<button @tap="locationSwitch">跳转GPS设置</button>
<button @tap="blueSwitch">跳转蓝牙设置</button>
<button @tap="wifiSwitch">跳转WIFI设置</button>
<button @tap="handleSwitchBluetooth">手动开启关闭蓝牙</button>
<button @tap="handleSwitchWifi">手动开启关闭wifi</button>
<view style="margin-top: 30rpx;">
<button @tap="getVolume('call')">获取通话音量</button>
<button @tap="getVolume('system')">获取系统音量</button>
<button @tap="getVolume('ring')">获取铃声音量</button>
<button @tap="getVolume('music')">获取音乐音量</button>
<button @tap="getVolume('alarm')">获取闹钟音量</button>
<button @tap="getVolume('notification')">获取通知音量</button>
</view>
<view>
<view>是否显示音量调节系统UI <switch :checked="isShowUI" @change="(event)=>{
isShowUI = event.detail.value
}"></switch></view>
</view>
<view>
<view>是否显示音量调节背景声音<switch :checked="isPlaySound" @change="(event)=>{
isPlaySound = event.detail.value
}"></switch></view>
</view>
<view>
<view>系统音量调节</view>
<view>
<slider value="0" @change="systemVolumeChange" show-value/>
</view>
</view>
<view>
<view>通话音量调节</view>
<view>
<slider value="0" @change="callVolumeChange" show-value/>
</view>
</view>
<view>
<view>铃声音量调节</view>
<view>
<slider value="0" @change="ringVolumeChange" show-value/>
</view>
</view>
<view>
<view>音乐音量调节</view>
<view>
<slider value="0" @change="musicVolumeChange" show-value/>
</view>
</view>
<view>
<view>闹钟音量调节</view>
<view>
<slider value="0" @change="alarmVolumeChange" show-value/>
</view>
</view>
<view>
<view>通知音量调节</view>
<view>
<slider value="0" @change="notificationVolumeChange" show-value/>
</view>
</view>
<view>
<view>调节系统亮度</view>
<view>
<slider value="0" @changing="setSystemBrightness" show-value/>
</view>
</view>
<view>
<view>调节App亮度</view>
<view>
<slider value="0" @changing="setAppBrightness" show-value/>
</view>
</view>
<view>
wifi开关状态:{{wifiStatus}}
</view>
<view>
蓝牙开关状态: {{bluetoothStatus}}
</view>
<view>
GPS开关状态: {{gpsStatus}}
</view>
<view>
GPS模式: {{locationMode}}
</view>
<view>
飞行模式开关状态:{{airplaneStatus}}
</view>
</view>
</template>
<script>
// 获取 module
var systemModule = uni.requireNativePlugin("NG-SystemSetting")
export default {
data() {
return {
wifiInfo: null,
volumeInfo: null,
wifiStatus: false,
bluetoothStatus: false,
gpsStatus: false,
locationMode: 0,
airplaneStatus: false,
isPlaySound:true,
isShowUI: true,
autoLight: false
}
},
onLoad() {
this.initSetting()
},
methods: {
getWifiStatus(){
systemModule.isWifiEnabled((arg)=>{
uni.showToast({
title:"wifi是否打开"+arg,
icon:'none'
})
})
},
getAppBrightness(){
systemModule.getAppBrightness((arg)=>{
uni.showToast({
title: "App亮度"+arg,
icon:'none'
})
})
},
/**
* 不同厂商的设备亮度最大值可能会出现不同的情况,默认情况下是255,测试了MIUI的最大值是128
*/
getSystemBrightness(){
systemModule.getBrightness((arg)=>{
uni.showToast({
title: "系统亮度"+arg,
icon:'none'
})
})
},
setSystemBrightness(val){
systemModule.setBrightness(Math.round(val.detail.value * 1.28),(arg)=>{
console.log(arg)
})
},
setAppBrightness(val){
systemModule.setAppBrightness(val.detail.value / 100,(arg)=>{
console.log(arg)
})
},
setScreenMode(){
systemModule.setScreenMode(Number(this.autoLight),(arg)=>{
console.log(arg)
})
},
systemVolumeChange(val){
systemModule.setVolume(val.detail.value / 100, "system",this.isPlaySound,this.isShowUI)
},
callVolumeChange(val){
systemModule.setVolume(val.detail.value / 100, "call",this.isPlaySound,this.isShowUI)
},
ringVolumeChange(val){
systemModule.setVolume(val.detail.value / 100, "ring",this.isPlaySound,this.isShowUI)
},
musicVolumeChange(val){
systemModule.setVolume(val.detail.value / 100, "music",this.isPlaySound,this.isShowUI)
},
alarmVolumeChange(val){
systemModule.setVolume(val.detail.value / 100, "alarm",this.isPlaySound,this.isShowUI)
},
notificationVolumeChange(val){
systemModule.setVolume(val.detail.value / 100, "notification",this.isPlaySound,this.isShowUI)
},
getCurrentConnectWifi() {
systemModule.getConnectWifi((arg) => {
console.log("当前连接上的wifi", arg)
this.wifiInfo = arg
})
},
initSetting() {
systemModule.initSetting((arg) => {
console.log("初始化完成", arg)
})
},
getScreenMode(){
systemModule.getScreenMode((arg)=>{
console.log("获取到屏幕模式",arg)
uni.showToast({
title: arg == 1 ? '自动亮度开' : '自动亮度关',
icon:'none'
})
})
},
activeListener(name) {
systemModule.activeListener(name, (arg) => {
switch (name) {
case "wifi":
this.wifiStatus = arg
break
case "bluetooth":
this.bluetoothStatus = arg
break
case "location":
this.gpsStatus = arg
break
case "locationMode":
this.locationMode = arg
break
case "airplane":
this.airplaneStatus = arg
break
case "volume":
this.volumeInfo = arg
break
}
})
},
getVolume(type){
systemModule.getVolume(type,(arg)=>{
uni.showToast({
title:type+":"+arg,
icon:'none'
})
})
},
getAirPlaneStatus() {
systemModule.isAirplaneEnabled((arg) => {
uni.showToast({
title: "飞行模式" + arg,
icon: "none"
})
})
},
airPlaneSwitch() {
systemModule.switchAirplane()
},
openAppSystemSetting() {
systemModule.openAppSystemSettings()
},
getGpsStatus() {
systemModule.isLocationEnabled((arg) => {
uni.showToast({
title: "GPS是否开启" + arg,
icon: "none"
})
})
},
getLocationMode() {
systemModule.getLocationMode((arg) => {
uni.showToast({
title: "GPS模式" + arg,
icon: "none"
})
})
},
getBlueToothStatus() {
systemModule.isBluetoothEnabled((arg) => {
uni.showToast({
title: "蓝牙是否开启" + arg,
icon: "none"
})
})
},
openSystemPermission() {
systemModule.openWriteSetting()
},
locationSwitch() {
systemModule.switchLocation()
},
blueSwitch() {
systemModule.switchBluetooth()
},
handleSwitchBluetooth() {
systemModule.switchBluetoothSilence()
},
handleSwitchWifi() {
systemModule.switchWifiSilence()
},
wifiSwitch() {
systemModule.switchWifi()
}
}
}
</script>