更新记录

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:支持 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
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>

隐私、权限声明

1. 本插件需要申请的系统权限列表:

"android.permission.LOCAL_MAC_ADDRESS", "android.permission.WRITE_SETTINGS", "android.permission.ACCESS_WIFI_STATE", "android.permission.BLUETOOTH", "android.permission.CHANGE_WIFI_STATE", "android.permission.BLUETOOTH", "android.permission.BLUETOOTH_ADMIN", "android.permission.BLUETOOTH_CONNECT", "android.permission.BLUETOOTH_SCAN", "android.permission.ACCESS_COARSE_LOCATION", "android.permission.ACCESS_FINE_LOCATION", "android.permission.ACCESS_LOCATION_EXTRA_COMMANDS", "android.permission.BLUETOOTH_PRIVILEGED"

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问