yr-panel-sdk

1.1.11 • Public • Published

一、React Native SDK 模块介绍

通过桥接原生的一些能力,比如网络请求、蓝牙、权限、wifi 等,在此基础上再进行封装,以供 RN 更便捷的使用

二、目录介绍

.
├── README.md
├── bridge                          // 桥接模块
   ├── bluetooth.js                // 蓝牙
   ├── brightness.js               // 亮度
   ├── device.js                   // 设备相关
   ├── location.js                 // 位置
   ├── native.js                   // 原生请求、监听封装
   ├── network.js                  // 网络请求
   ├── permission.js               // 权限
   ├── protocol.js                 // 协议
   ├── router.js                   // 页面跳转
   ├── tuya.js                     // 涂鸦相关
   ├── volume.js                   // 声音
   └── wifi.js                     // wifi
└── yrsdk                           // RN模块
    ├── event.js                    // RN自定义事件
    ├── bluetooth.js                // 蓝牙
    ├── brightness.js               // 亮度
    ├── crypto.js                   // 加密/解密
    ├── device.js                   // 设备相关
    ├── index.js                    // 入口
    ├── location.js                 // 位置
    ├── permission.js               // 权限
    ├── request.js                  // 网络请求
    ├── router.js                   // 页面跳转
    ├── tuya.js                     // 涂鸦相关
    ├── volume.js                   // 声音
    └── wifi.js                     // wifi
    └── yrlog.js                    // log

三、使用

1. 引用

import {
    YRBrightness,
    YRVolume,
    YRPermission,
    YRWifi,
    YRBluetooth,
    YRLocation,
    YRDevice,
    YRRouter,
    YRRequest,
    YREvent,
    YRLog,
    YRCrypto,
    YRTuya
} from 'yr-panel-sdk'

2. YRBrightness

// 获取亮度
const brightness = await YRBrightness.get()

// 设置亮度
YRBrightness.set(brightness)

3. YRVolume

// 获取手机音量
const volume = await YRVolume.get()

// 设置手机音量
YRVolume.set(volume)

4. YRWifi

// 获取wifi状态
const wifiSwitch = await YRWifi.state()

// 获取wifi名称
const wifiName = await YRWifi.getName()

// 获取wifi加密信息
const wifiEncryptString = await YRWifi.encrypt(data)

5. YRDevice

// 获取设备信息
const device = await YRDevice.get()

// 获取app环境
const env = await YRDevice.env()

// 获取baseUrl, 用户相关信息
const base = await YRDevice.base()

// 获取国家码
const countrycode = await YRDevice.countrycode()

// 获取面板信息
const panelInfo = await YRDevice.panelInfo({ panelList: ['app_help_center'] })

// 获取直播截图
const liveShot = await YRDevice.liveShot({ deviceId: '' })

// 通知原生APP
//"event": 设备变化事件类型,事件类型具体如下
//refresh:刷新当前全量设备
//add:添加单个或多个设备
//remove:删除单个或多个设备,如果为空默认全部删除。
//update:更新单个或多个设备,具体更新内容以字段为准,用于更改设备属性。如果是更新整个设备信息,建议使用add。
//"data": 设备数据,设备数据必须有uuid,其他字段根据实际需要添加。字段定义以后台api接口提供的设备数据结构为准,参考device/list或device/info接口。
const notifyNative = await YRDevice.notifyNative({
    event: 'refresh',
    data: { ipc: [{ uuid: '' }], ea: [{ uuid: '' }] }
})

// 获取SD卡信息-p2p
const sdCard = await YRDevice.sdCard({ deviceId: '' })

// 获取Identifier
const identifier = await YRDevice.identifier({ deviceId: '' })

// 显示/隐藏tabbar
const settabbar = await YRDevice.settabbar({ isShow: true / false })

// postEvent广播通知
const postEvent = await YRDevice.postEvent({ type: 'SubscriptionSuccess' })

// android 退出App提示
const backPressed = await YRDevice.backPressed()

// 检查APP升级状态
const checkAppUpgrade = await YRDevice.checkAppUpgrade({
    isShow: true,
    number: 1,
    appleID: 1583154299
})

// 获取红点状态
const getAppUpgradePointStatus = await YRDevice.getAppUpgradePointStatus()

// 设置红点状态(已读)
YRDevice.setAppUpgradePointStatus()

// 调出dokit调试工具(android)
YRDevice.dokit()

// 设置APP缓存密码
const setAppPassword = await YRDevice.setAppPassword({
    account: '',
    password: ''
})
// 获取APP缓存
const getAppCache = await YRDevice.getAppCache()

// 清除APP缓存
const clearAppCache = await YRDevice.clearAppCache()

// 退出登录
const logout = await YRDevice.logout()

6. YRLocation

// 获取定位开关状态
const locationSwitch = await YRLocation.state()

6. YRPermission

const { Permission, Permissions, RESULTS } = YRPermission

// 获取权限列表
const plist = await Permission.get()

// 检查权限
const check = await Permission.check(plist)

// 请求权限
const check = await Permission.request(plist)

7. YRRequest

// get请求
const result = await YRRequest.get('device/newlist', data)

// post请求
const result = await YRRequest.post('chargebee/cancel', data)

// ws 监听
YRRequest.wslisten({ identifier, deviceId, deviceModel }, cb) // 第一个参数必传, cb用来处理设备主动上报的数据

// ws 发送
const d = await YRRequest.wssend(WSMETHOD, cmds)

注意:wslisten必须在wssend之前调用

8. YREvent

// 注册监听
YREvent.listen()

// 移除监听
YREvent.remove()

10. YRBluetooth

// 获取蓝牙状态
const state = await YRBluetooth.state()

// 开始扫描
const startScan = await YRBluetooth.startDevicesDiscovery(data)

// 监听扫描
const onDeviceFound = await YRBluetooth.onDeviceFound((e) => {
    console.log(e)
})

// 移除扫描监听
const removeDeviceFound = await YRBluetooth.removeDeviceFound()

// 停止扫描
const stopScan = await YRBluetooth.stopDevicesDiscovery()

// 创建连接
const createConnection = await YRBluetooth.createConnection(data)

// 监听连接状态改变事件
const onConnectionStateChange = await YRBluetooth.onConnectionStateChange(data, (e) => {
    console.log(e)
})

// 移除连接状态监听
const removeConnectionStateChange = await YRBluetooth.removeConnectionStateChange(data)

// 取消连接
const closeConnection = await YRBluetooth.closeConnection()

// 监听设备通知事件
const notify = await YRBluetooth.notify(data, (e) => {
    console.log(e)
})

// 移除监听设备通知事件
const removeNotify = await YRBluetooth.removeNotify(data)

// 向设备发送数据
const write = await YRBluetooth.write(data)

// 监听设备通知事件
const onStateChange = await YRBluetooth.onStateChange((e) => {
    console.log(e)
})

// 移除蓝牙状态事件
const removeStateChange = await YRBluetooth.removeStateChange()

注意:原生listening必须配合YREvent.listen()使用

11. YRRouter

const { Router, ROUTER } = YRRouter
// 退出面板
Router.pop()

// 回到首页
Router.popRootWiew()

// 页面跳转
// shop页
Router.push(ROUTER.SHOP, data)
// 重置提示页
Router.push(ROUTER.RESET, data)
// 帮助中心页
Router.push(ROUTER.HELPCENTER, data)
// 配网等待页
Router.push(ROUTER.PAIRING, data)
// 反馈页
Router.push(ROUTER.FEEDBACK, data)
...

12. YRLog

YRLog.v('message')

13. YRCrypto

// 加密
YRCrypto.ec(str)
// 解密
YRCrypto.dc(str)

13. YRTrack 埋点

// 流的创建、重启
YRTrack.startFlow()
// 流的断开
YRTrack.endFlow()
// 记录事件
YRTrack.logEvent({ track })
// 上报流
YRTrack.report(type, data)

事件记录原则:
1. 点击事件仅仅是跳转页面的,仅记录页面聚焦事件
2. 点击事件有特殊含义的,记录点击事件和页面聚焦事件

流终止条件:
1. 退出RN面板
2. 杀死APP

// 配网埋点数据结构
{
    "typ": 10050,
    "ts": 1992164510,
    "uuid": "xxxxxx",
    "ext": {
        "evt": "Select_deviceModel",
        "model": "",
        "ts": "",
        "app": "ios",
        "ver": "2.3.4",
        "id": ""
    }
}

Readme

Keywords

none

Package Sidebar

Install

npm i yr-panel-sdk

Weekly Downloads

70

Version

1.1.11

License

MIT

Unpacked Size

121 kB

Total Files

36

Last publish

Collaborators

  • ysng