| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389 |
- // SMDT设备管理插件 JavaScript 使用示例
- // 获取插件实例
- const smdtManager = uni.requireNativePlugin('SmdtManager');
- // 检查插件是否加载成功
- if (!smdtManager) {
- console.error('SMDT Manager插件加载失败');
- }
- // 插件初始化检查和重试机制
- export const PluginManager = {
- // 检查插件是否已初始化
- async checkInitialization() {
- return new Promise((resolve) => {
- console.log("qxj smdtManager",smdtManager);
- smdtManager.isInitialized((res) => {
- console.log("qxj isInitialized",res);
- resolve(res.initialized || false);
- });
- });
- },
- // 重新初始化插件
- async initialize() {
- return new Promise((resolve, reject) => {
- smdtManager.initialize((res) => {
- if (res.error) {
- reject(res.error);
- } else {
- resolve(res);
- }
- });
- });
- },
- // 确保插件已初始化(带重试机制)
- async ensureInitialized(maxRetries = 3) {
- for (let i = 0; i < maxRetries; i++) {
- const isInitialized = await this.checkInitialization();
- if (isInitialized) {
- return true;
- }
-
- console.log(`插件未初始化,尝试重新初始化 (${i + 1}/${maxRetries})`);
- try {
- await this.reinitialize();
- // 等待一段时间后再检查
- await new Promise(resolve => setTimeout(resolve, 500));
- } catch (error) {
- console.error(`重新初始化失败:`, error);
- if (i === maxRetries - 1) {
- throw new Error('插件初始化失败,请检查设备兼容性');
- }
- }
- }
- return false;
- }
- };
- // 系统功能示例
- export const SystemAPI = {
- // 获取系统字体大小
- async getSystemFontSize() {
- try {
- // 确保插件已初始化
- await PluginManager.ensureInitialized();
-
- return new Promise((resolve, reject) => {
- smdtManager.getSystemFontSize((res) => {
- if (res.error) {
- reject(res.error);
- } else {
- resolve(res.fontSize);
- }
- });
- });
- } catch (error) {
- throw new Error(`获取系统字体大小失败: ${error.message}`);
- }
- },
- // 设置系统字体大小
- setSystemFontSize(fontSize) {
- return new Promise((resolve, reject) => {
- smdtManager.setSystemFontSize({ fontSize }, (res) => {
- if (res.error) {
- reject(res.error);
- } else {
- resolve(res.result);
- }
- });
- });
- },
- // 获取时间格式
- getTimeFormat() {
- return new Promise((resolve, reject) => {
- smdtManager.getTimeFormat((res) => {
- if (res.error) {
- reject(res.error);
- } else {
- resolve(res.timeFormat);
- }
- });
- });
- },
- // 设置时间格式 (1: 24小时制, 0: 12小时制)
- setTimeFormat(timeFormat) {
- return new Promise((resolve, reject) => {
- smdtManager.setTimeFormat({ timeFormat }, (res) => {
- if (res.error) {
- reject(res.error);
- } else {
- resolve(res.result);
- }
- });
- });
- },
- // 设置音量 (0-100)
- setVolume(volume) {
- return new Promise((resolve, reject) => {
- smdtManager.setVolume({ volume }, (res) => {
- if (res.error) {
- reject(res.error);
- } else {
- resolve(res.result);
- }
- });
- });
- },
- // 设置ADB调试
- setAdbDebug(enable) {
- return new Promise((resolve, reject) => {
- smdtManager.setAdbDebug({ enable }, (res) => {
- if (res.error) {
- reject(res.error);
- } else {
- resolve(res.result);
- }
- });
- });
- }
- };
- // 网络功能示例
- export const NetworkAPI = {
- // 获取WiFi信号强度
- getWifiRssi() {
- return new Promise((resolve, reject) => {
- smdtManager.getWifiRssi((res) => {
- if (res.error) {
- reject(res.error);
- } else {
- resolve(res.rssi);
- }
- });
- });
- },
- // 获取MAC地址
- getMacAddress() {
- return new Promise((resolve, reject) => {
- smdtManager.getMacAddress((res) => {
- if (res.error) {
- reject(res.error);
- } else {
- resolve(res.macAddress);
- }
- });
- });
- },
- // 获取IMEI号
- getImeiNumber() {
- return new Promise((resolve, reject) => {
- smdtManager.getImeiNumber((res) => {
- if (res.error) {
- reject(res.error);
- } else {
- resolve(res.imei);
- }
- });
- });
- },
- // 设置WiFi热点
- setWifiAp(ssid, password) {
- return new Promise((resolve, reject) => {
- smdtManager.setWifiAp({ ssid, password }, (res) => {
- if (res.error) {
- reject(res.error);
- } else {
- resolve(res.result);
- }
- });
- });
- }
- };
- // 显示功能示例
- export const DisplayAPI = {
- // 设置LCD背光亮度 (0-255)
- setLcdBackLight(brightness) {
- return new Promise((resolve, reject) => {
- smdtManager.setLcdBackLight({ brightness }, (res) => {
- if (res.error) {
- reject(res.error);
- } else {
- resolve(res.result);
- }
- });
- });
- },
- // 设置显示密度
- setDisplayDensity(density) {
- return new Promise((resolve, reject) => {
- smdtManager.setDisplayDensity({ density }, (res) => {
- if (res.error) {
- reject(res.error);
- } else {
- resolve(res.result);
- }
- });
- });
- }
- };
- // 硬件功能示例
- export const HardwareAPI = {
- // 设置LED灯状态
- setLedLighted(ledId, enable) {
- return new Promise((resolve, reject) => {
- smdtManager.setLedLighted({ ledId, enable }, (res) => {
- if (res.error) {
- reject(res.error);
- } else {
- resolve(res.result);
- }
- });
- });
- },
- // 获取LED状态
- getLedState(ledId) {
- return new Promise((resolve, reject) => {
- smdtManager.getLedState({ ledId }, (res) => {
- if (res.error) {
- reject(res.error);
- } else {
- resolve(res.state);
- }
- });
- });
- },
- // 获取SD卡路径
- getSDcardPath() {
- return new Promise((resolve, reject) => {
- smdtManager.getSDcardPath((res) => {
- if (res.error) {
- reject(res.error);
- } else {
- resolve(res.path);
- }
- });
- });
- },
- // 获取U盘路径
- getUdiskPath() {
- return new Promise((resolve, reject) => {
- smdtManager.getUdiskPath((res) => {
- if (res.error) {
- reject(res.error);
- } else {
- resolve(res.path);
- }
- });
- });
- },
- // 设置USB电源
- setUsbPower(enable) {
- return new Promise((resolve, reject) => {
- smdtManager.setUsbPower({ enable }, (res) => {
- if (res.error) {
- reject(res.error);
- } else {
- resolve(res.result);
- }
- });
- });
- }
- };
- // 使用示例
- export const UsageExamples = {
- // 系统设置示例
- async systemExample() {
- try {
- // 获取当前字体大小
- const fontSize = await SystemAPI.getSystemFontSize();
- console.log('当前字体大小:', fontSize);
- // 设置字体大小
- const result = await SystemAPI.setSystemFontSize(18);
- console.log('设置字体大小结果:', result);
- // 设置为24小时制
- await SystemAPI.setTimeFormat(1);
- console.log('时间格式设置为24小时制');
- // 设置音量为50%
- await SystemAPI.setVolume(50);
- console.log('音量设置为50%');
- } catch (error) {
- console.error('系统设置错误:', error);
- }
- },
- // 网络功能示例
- async networkExample() {
- try {
- // 获取WiFi信号强度
- const rssi = await NetworkAPI.getWifiRssi();
- console.log('WiFi信号强度:', rssi, 'dBm');
- // 获取MAC地址
- const macAddress = await NetworkAPI.getMacAddress();
- console.log('MAC地址:', macAddress);
- // 设置WiFi热点
- await NetworkAPI.setWifiAp('MyHotspot', '12345678');
- console.log('WiFi热点设置成功');
- } catch (error) {
- console.error('网络功能错误:', error);
- }
- },
- // 显示控制示例
- async displayExample() {
- try {
- // 设置屏幕亮度为50%
- await DisplayAPI.setLcdBackLight(128);
- console.log('屏幕亮度设置为50%');
- // 设置显示密度
- await DisplayAPI.setDisplayDensity(320);
- console.log('显示密度设置为320 DPI');
- } catch (error) {
- console.error('显示控制错误:', error);
- }
- },
- // 硬件控制示例
- async hardwareExample() {
- try {
- // 打开LED灯
- await HardwareAPI.setLedLighted(1, true);
- console.log('LED灯已打开');
- // 获取LED状态
- const ledState = await HardwareAPI.getLedState(1);
- console.log('LED状态:', ledState ? '开启' : '关闭');
- // 获取存储路径
- const sdPath = await HardwareAPI.getSDcardPath();
- console.log('SD卡路径:', sdPath);
- // 启用USB电源
- await HardwareAPI.setUsbPower(true);
- console.log('USB电源已启用');
- } catch (error) {
- console.error('硬件控制错误:', error);
- }
- }
- };
- // 导出插件实例供直接使用
- export default smdtManager;
|