# 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
> [!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) ,请自由地享受和参与开源。