# YT88 **Repository Path**: zeyangwu95/yt88 ## Basic Information - **Project Name**: YT88 - **Description**: No description available - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-07 - **Last Updated**: 2025-12-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # YT88 SoftKey Plugin YT88 SoftKey Plugin 是一个功能强大、支持多框架版本的加密锁插件库,提供安全可靠的加密解密功能和设备管理能力。 ## 核心特性 - **安全加密**:提供高强度的加密解密算法,基于硬件加密锁的安全保障 - **设备管理**:自动检测和连接加密锁设备,支持热插拔和设备状态监控 - **多框架支持**:全面支持 React 1-19、Vue 1-3 以及原生 JavaScript - **开发体验**:完善的 TypeScript 类型定义,内置国际化支持 ## 支持的框架版本 ### React - React 16.x (^16.8.0) - React 17.x - React 18.x - React 19.x ### Vue - Vue 1.x - Vue 2.x - Vue 3.x ### Web - 原生 JavaScript ## 安装 ```bash npm install yt88-softkey-plugin ``` ## 导入 ### React 16+ ```javascript // React 16+ 导入 import { SoftKeyProvider, SoftKeyComponent, useSoftKey, useSoftKey3W } from 'yt88-softkey-plugin/react'; // 或者使用完整路径 import { SoftKeyProvider, SoftKeyComponent, useSoftKey, useSoftKey3W } from 'yt88-softkey-plugin/dist/react/softkey-plugin.react.es.js'; ``` ### Vue 3 ```javascript // Vue 3 导入 import { VueSoftKeyPlugin, VueSoftKeyComponent, useSoftKey } from 'yt88-softkey-plugin/vue3'; // 或者使用完整路径 import { VueSoftKeyPlugin, VueSoftKeyComponent, useSoftKey } from 'yt88-softkey-plugin/dist/softkey-plugin.vue3.es.js'; ``` ## Hook使用示例 ### React ```javascript import React from 'react'; import { SoftKeyProvider, useSoftKey } from 'yt88-softkey-plugin/react'; // 根据React版本选择正确的导入路径 function SoftKeyDemo() { const { connect, disconnect, encrypt, decrypt, isConnected, lockId } = useSoftKey(); const handleConnect = async () => { const success = await connect(); if (success) { console.log('Connected successfully!'); } else { console.error('Failed to connect!'); } }; const handleEncrypt = async () => { if (isConnected) { try { const encrypted = await encrypt('Hello World'); console.log('Encrypted:', encrypted); } catch (error) { console.error('Encryption failed:', error); } } }; return (

SoftKey Hook Demo

Status: {isConnected ? 'Connected' : 'Disconnected'}

{isConnected &&

Lock ID: {lockId}

}
); } function App() { return (

YT88 SoftKey Plugin Demo

); } export default App; ``` ### Vue 3 组合式API ```vue ``` ### 原生 JavaScript ```javascript import { SoftKey, SoftKey3W } from 'yt88-softkey-plugin'; // 创建实例 const softKey = new SoftKey(); const softKey3W = new SoftKey3W({ debug: true, language: 'zh-CN' }); // 连接设备 async function connectDevice() { try { const success = await new Promise((resolve) => { const instance = new SoftKey3W({ debug: true }); instance.Socket_UK.onopen = async () => { console.log('设备已连接'); const id = await instance.GetID_1('0'); console.log('锁ID:', id); resolve(true); }; instance.Socket_UK.onerror = () => { console.error('设备连接失败'); resolve(false); }; }); return success; } catch (error) { console.error('连接设备时发生错误:', error); return false; } } // 加密数据 async function encryptData(data) { try { const encrypted = await softKey.StrEnc(data, 'defaultKey'); console.log('加密结果:', encrypted); return encrypted; } catch (error) { console.error('加密失败:', error); throw error; } } // 解密数据 async function decryptData(data) { try { const decrypted = await softKey.StrDec(data, 'defaultKey'); console.log('解密结果:', decrypted); return decrypted; } catch (error) { console.error('解密失败:', error); throw error; } } // 使用示例 async function example() { const connected = await connectDevice(); if (connected) { const encrypted = await encryptData('测试数据123456'); const decrypted = await decryptData(encrypted); } } example(); ``` ## 构建 ### Vue 2 ```javascript // Vue 2 导入 import { VueSoftKeyPlugin, VueSoftKeyComponent } from 'yt88-softkey-plugin/vue2'; // 或者使用完整路径 import { VueSoftKeyPlugin, VueSoftKeyComponent } from 'yt88-softkey-plugin/dist/softkey-plugin.vue2.es.js'; ``` ### Vue 1 ```javascript // Vue 1 导入 import { VueSoftKeyPlugin, VueSoftKeyComponent } from 'yt88-softkey-plugin/vue'; // 或者使用完整路径 import { VueSoftKeyPlugin, VueSoftKeyComponent } from 'yt88-softkey-plugin/dist/softkey-plugin.vue.es.js'; ``` ### 原生 JavaScript ```javascript // 原生 JavaScript 导入 import { SoftKey, SoftKey3W } from 'yt88-softkey-plugin'; // 或者使用完整路径 import { SoftKey, SoftKey3W } from 'yt88-softkey-plugin/dist/softkey-plugin.es.js'; ``` ## 组件使用示例 ### React ```javascript import React from 'react'; import { SoftKeyProvider, SoftKeyComponent } from 'yt88-softkey-plugin/react'; // 根据React版本选择正确的导入路径 function App() { return (

YT88 SoftKey Plugin Demo

); } export default App; ``` ### Vue 3 组合式API ```vue ``` ### 原生 JavaScript ```javascript import { SoftKey, SoftKey3W } from 'yt88-softkey-plugin'; // 创建实例 const softKey = new SoftKey(); const softKey3W = new SoftKey3W({ debug: true, language: 'zh-CN' }); // 连接设备 async function connectDevice() { try { const success = await new Promise((resolve) => { const instance = new SoftKey3W({ debug: true }); instance.Socket_UK.onopen = async () => { console.log('设备已连接'); const id = await instance.GetID_1('0'); console.log('锁ID:', id); resolve(true); }; instance.Socket_UK.onerror = () => { console.error('设备连接失败'); resolve(false); }; }); return success; } catch (error) { console.error('连接设备时发生错误:', error); return false; } } // 加密数据 async function encryptData(data) { try { const encrypted = await softKey.StrEnc(data, 'defaultKey'); console.log('加密结果:', encrypted); return encrypted; } catch (error) { console.error('加密失败:', error); throw error; } } // 解密数据 async function decryptData(data) { try { const decrypted = await softKey.StrDec(data, 'defaultKey'); console.log('解密结果:', decrypted); return decrypted; } catch (error) { console.error('解密失败:', error); throw error; } } // 使用示例 async function example() { const connected = await connectDevice(); if (connected) { const encrypted = await encryptData('测试数据123456'); const decrypted = await decryptData(encrypted); } } example(); ``` ### Vue 3 ```javascript // main.js import { createApp } from 'vue' import { VueSoftKeyPlugin } from 'yt88-softkey-plugin/vue3' import App from './App.vue' const app = createApp(App) app.use(VueSoftKeyPlugin, { debug: true }) app.mount('#app') ``` ```vue ``` ### Vue 2 ```javascript // main.js import Vue from 'vue' import { SoftKeyPlugin } from 'yt88-softkey-plugin/vue2' import App from './App.vue' Vue.use(SoftKeyPlugin, { debug: true }) new Vue({ render: h => h(App) }).$mount('#app') ``` ```vue ``` ## Hook使用示例 ```javascript import React from 'react'; import { SoftKeyProvider, useSoftKey } from 'yt88-softkey-plugin/react'; // 根据React版本选择正确的导入路径 function SoftKeyDemo() { const { connect, disconnect, encrypt, decrypt, isConnected, lockId } = useSoftKey(); const handleConnect = async () => { const success = await connect(); if (success) { console.log('Connected successfully!'); } else { console.error('Failed to connect!'); } }; const handleEncrypt = async () => { if (isConnected) { try { const encrypted = await encrypt('Hello World'); console.log('Encrypted:', encrypted); } catch (error) { console.error('Encryption failed:', error); } } }; return (

SoftKey Hook Demo

Status: {isConnected ? 'Connected' : 'Disconnected'}

{isConnected &&

Lock ID: {lockId}

}
); } function App() { return (

YT88 SoftKey Plugin Demo

); } export default App; ``` ## 构建 ### 构建所有版本 ```bash npm run build:all ``` ### 构建特定React版本 ```bash # 构建React 18+版本 npm run build:react # 构建React 17版本 npm run build:react17 # 构建React 16版本 npm run build:react16 ``` ## 测试项目 项目包含多个测试项目,用于测试不同React版本的插件实现: - `test-projects/react-test`: React 18+测试项目 - `test-projects/react17-test`: React 17测试项目 - `test-projects/react16-test`: React 16测试项目 ## API参考 ### SoftKeyProvider ```typescript interface SoftKeyProviderProps { children: React.ReactNode; softKeyOptions?: any; softKey3WOptions?: any; options?: { debug?: boolean; language?: string; }; } ``` ### SoftKeyComponent ```typescript interface SoftKeyComponentProps { testData?: string; debug?: boolean; language?: string; } ``` ### useSoftKey Hook ```typescript interface SoftKeyHookReturn { connect: () => Promise; disconnect: () => Promise; encrypt: (data: string) => Promise; decrypt: (data: string) => Promise; isConnected: boolean; lockId: string | null; lockData: any; } ``` ## 注意事项 1. 确保在使用任何组件或Hook之前,先在应用程序的顶层包裹`SoftKeyProvider`组件 2. 根据您项目中使用的React版本,选择正确的导入路径 3. 在开发环境中,可以设置`debug: true`来查看详细的日志信息 4. 确保加密锁设备已正确连接到计算机 ## 许可证 MIT ## 直接编辑文档 想要直接修改文档内容?点击下面的链接可以直接在Gitee上编辑对应的文档文件: - [编辑首页](https://gitee.com/zeyangwu/yt88/edit/master/docs/index.md) - [编辑快速开始](https://gitee.com/zeyangwu/yt88/edit/master/docs/getting-started.md) - [编辑安装指南](https://gitee.com/zeyangwu/yt88/edit/master/docs/installation.md) - [编辑API参考](https://gitee.com/zeyangwu/yt88/edit/master/docs/api-reference.md) - [编辑使用示例](https://gitee.com/zeyangwu/yt88/edit/master/docs/usage-examples.md) ## 联系我们 - **发布人**: Mark·虎 - **邮箱**: 1344253408@qq.com - **微信**: 15899232784 - **仓库地址**: [https://gitee.com/zeyangwu/yt88.git](https://gitee.com/zeyangwu/yt88.git)