# 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
YT88 SoftKey Plugin Demo
连接状态: {{ isConnected ? '已连接' : '未连接' }}
加密锁ID: {{ lockId }}
```
### 原生 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
YT88 SoftKey Plugin Demo
连接状态: {{ isConnected ? '已连接' : '未连接' }}
加密锁ID: {{ lockId }}
```
### 原生 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
YT88 SoftKey Plugin Demo
```
### 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
YT88 SoftKey Plugin Demo
```
## 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)