# sensorsdata-analytics **Repository Path**: jtduc/sensorsdata-analytics ## Basic Information - **Project Name**: sensorsdata-analytics - **Description**: sensorsdata-analytics 的最小demo - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-05-22 - **Last Updated**: 2024-06-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 文档模板 > 模板版本:v0.2.1

@react-native-oh-tpl/sensorsdata-analytics-react-native

Supported platforms License

> [!TIP] [Github 地址](https://gitee.com/jtduc/sensorsdata-analytics.git) ## 安装与使用 请到三方库的 Releases 发布地址查看配套的版本信息:([@react-native-oh-tpl/sensorsdata-analytics-react-native](https://gitee.com/jtduc/sensorsdata-analytics/releases)),并下载适用版本的 tgz 包。 进入到工程目录并输入以下命令: > [!TIP] # 处替换为 tgz 包的路径 #### **npm** ```bash npm install @react-native-oh-tpl/sensorsdata-analytics-react-native@file:# ``` #### **yarn** ```bash yarn add @react-native-oh-tpl/sensorsdata-analytics-react-native@file:# ``` 下面的代码展示了这个库的基本使用场景: > [!WARNING] 使用时 import 的库名不变。 ```js import React, {useState} from 'react'; import {StyleSheet,View,Text,Button} from 'react-native'; import SensorsAnaly from'sensorsdata-analytics-react-native'; export const SensorsAnalyExample = () => { const getIpAddrFromNum=(ipNum: number)=> { return (ipNum >>> 24) + '.' + (ipNum >> 16 & 0xFF) + '.' + (ipNum >> 8 & 0xFF) + '.' + (ipNum & 0xFF); } const [ip, setIp] = useState(''); const [flushStr, setflushStr] = useState(''); const getIp = ()=>{ SensorsAnaly.getWlan().then((data)=>{ setIp(getIpAddrFromNum(data.ipAddress)) }) } const clearIp = ()=>{ setIp('') } const flush = ()=>{ setflushStr(SensorsAnaly.flush()) setTimeout(()=>{ setflushStr('') },1000) } return ( {ip} {flushStr} ) }; const styles = StyleSheet.create({ container: { display:'flex', justifyContent:'center', height:'100%', marginTop:-200 }, btn:{ padding:10 }, text:{ textAlign:'center', margin:20 } }); ``` ## Link 目前鸿蒙暂不支持 AutoLink,所以 Link 步骤需要手动配置。 首先需要使用 DevEco Studio 打开项目里的鸿蒙工程 `harmony` ### 在工程根目录的 `oh-package.json` 添加 overrides 字段 ```json { ... "overrides": { "@rnoh/react-native-openharmony" : "./react_native_openharmony" } } ``` ### 引入原生端代码 目前有两种方法: 1. 通过 har 包引入(在 IDE 完善相关功能后该方法会被遗弃,目前首选此方法); 2. 直接链接源码。 方法一:通过 har 包引入(推荐) > [!TIP] har 包位于三方库安装路径的 `harmony` 文件夹下。 打开 `entry/oh-package.json5`,添加以下依赖 ```json "dependencies": { "@rnoh/react-native-openharmony": "file:../react_native_openharmony", "@react-native-oh-tpl/sensorsdata-analytics-react-native": "file:../../node_modules/@react-native-oh-tpl/sensorsdata-analytics-react-native/harmony/sensors_analytics.har" } ``` 点击右上角的 `sync` 按钮 或者在终端执行: ```bash cd entry ohpm install ``` 方法二:直接链接源码 > [!TIP] 源码位于三方库安装路径的 `harmony` 文件夹下。 把`tester/node_modules/@react-native-oh-tpl/sensorsdata-analytics-react-native/harmony/`目录下的源码`sensors_analytics`复制到`harmony`工程根目录下 在`harmony`工程根目录的 `build-profile.template.json5`(若存在)和`build-profile.json5` 添加以下模块 ```json modules:[ ... { name: 'sensors_analytics', srcPath: './sensors_analytics', } ] ``` 打开 `entry/oh-package.json5`,添加以下依赖 ```json "dependencies": { "@rnoh/react-native-openharmony": "file:../react_native_openharmony", "@react-native-oh-tpl/sensorsdata-analytics-react-native": "file:../sensors_analytics" } ``` 点击右上角的 `sync` 按钮 或者在终端执行: ```bash cd entry ohpm install ``` ### 在 ArkTs 侧引入 xxx Package 打开 `entry/src/main/ets/RNPackagesFactory.ts`,添加: ```diff ... + import {SensorsAnalyticsPackage} from '@react-native-oh-tpl/sensorsdata-analytics-react-native/ts'; export function createRNPackages(ctx: RNPackageContext): RNPackage[] { return [ new SamplePackage(ctx), + new SensorsAnalyticsPackage(ctx) ]; } ``` ### 运行 点击右上角的 `sync` 按钮 或者在终端执行: ```bash cd entry ohpm install ``` 然后编译、运行即可。 ## 约束与限制 ### 兼容性 1. RNOH: BR_DEV_430; SDK: HarmonyOS NEXT Developer Beta1 SDK ; IDE: DevEco Studio 5.0.3.300; ROM: BRA-AL00 3.0.0.22(SP37DEVC00E22R4P2); ## API(如有,一般是 TurboModules) > [!tip] "Platform"列表示该属性在原三方库上支持的平台。 > [!tip] "HarmonyOS Support"列为 yes 表示 HarmonyOS 平台支持该属性;no 则表示不支持;partially 表示部分支持。使用方法跨平台一致,效果对标 iOS 或 Android 的效果。 | Name | Description | Type | Required | Platform | HarmonyOS Support | | ------- | ----------- | -------- | -------- | -------- | ----------------- | | getWlan | 获取ip | function | yes | Harmony | yes | ## 遗留问题 ## 其他 ## 开源协议 本项目基于 [The MIT License (MIT)](https://github.com/callstack/react-native-slider/blob/main/LICENSE.md) ,请自由地享受和参与开源。