#项目导入指引
[TOC]
项目版本
Update: 2023/9/14
最新版本:
- IOS 1.0.8
- Android 1.0.7

导入指引
1. IOS项目导入指引
1.1 引入TUTK SDK
第一步:引入IOTCamera.framework
- ReactNative工程iOS文件创建一个文件夹(例如:Lib),导入如下IOTCamera.framework依赖库,并添加到iOS项目中
第二步:在iOS工程项目中添加系统依赖库
第三步:添加ReactNative封装文件至Xcode项目中,进行调用
第四步:更新privateKey
- 在APPdelegate.m文件中初始化代码添加如下:
// 自动唤醒
IOTC_WakeUp_Setup_Auto_WakeUp(1);
// 初始化Camera
Camera TK_InitIOTCWithLiceseKey:licenseKey privateKey:privateKey success:^{
NSLog(@"初始化成功");
} failure:^(NSError *error) {
NSLog(@"error.code ===== %ld",(long)error.code);
if (error.code == TUTK_ER_INVALID_ARG) {
NSLog(@"TK_InitIOTC:false(TUTK_ER_INVALID_ARG)");
}else if (error.code == TUTK_ER_INVALID_LICENSE_KEY) {
NSLog(@"TK_InitIOTC:false(TUTK_ER_INVALID_LICENSE_KEY)");
}else if (error.code == TUTK_ER_MEM_INSUFFICIENT) {
NSLog(@"TK_InitIOTC:false(TUTK_ER_MEM_INSUFFICIENT)");
}
}];
privateKey和licenseKey具体参数需要进行申请
NSString *privateKey = @"";
NSString *bundleID = [[NSBundle mainBundle] bundleIdentifier];
if ([bundleID isEqualToString:@"com.xx.xx"]) {
privateKey = @"xxxxx=";
}
第五步:安装项目依赖
- 执行yarn install(yarn如果未安装需要安装yarn)
1.2 注意事项
1.2.1 更换SDK处理
1. 只需要替换当前图片中的.a文件即可,当前Lib文件是保存在iOS项目中 2. 替换完成之后,重新运行iOS项目即可
1.2.2 开启截图,开启录像,开启麦克风权限
1. 选择iOS项目,再info.plist文件, 点击第一行Information+图标按钮选择对应的权限
1.2.3 发送Command指令
1. 如果自定义Command,需要再RNIOTCameraCommand.h文件中,添加自定义的Command 1. iOS原生中实现Command指令时间 2. RN回调出去,Demo中有对应存在实例
1.2.4 CameraView播放器
1. IOTCameraLiveViewManager 视图管理类给JS调用 2. CommunicationModule Camera方法封装类,里面有Camera各种调用方法和回调
1.2.5 CamearCommand回调处理
1. didReceiveIOCtrlWithType,这个是发送Cammand事件回调,设备回调给客户端的回调,可以在当前回调处理好数据,回调给RN,同样Demo中也给出了例子
1.2.6 更新配置文件,Xcode13及以上运行
> ReactNative版本为0.64.0,iOS开发工具为Xcode13以上则需要更新配置
方案一:
1. Pod文件修改:
use_flipper!({'Flipper' => '0.75.1', 'Flipper-Folly' => '2.5.3', 'Flipper-RSocket' => '1.3.1'})
2. 修改package.json
的ReactNative版本为'0.64.1'
3. 先删除node_modules及pod文件夹及podfile.lock
等
4. 安装则执行yarn install
完成之后,接着进入ios文件夹,执行pod install –repo-update
5. 完成之后再添加PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
到
/node_modules/react-native/scripts/generate-specs.sh
文件
如下图
-
完成上面直接运行
Xcode
等待编译 -
如果上面的方案编译不通过,查看当前电脑的
Node
版本是否过高,建议降低Node
的版本,上面的方案编译通过Node
版本为@14 - 真机调试则需要电脑和手机需要当前局域网!
1.3 参考文献
解决方案Xcode13方案资料: 解决Node无法找到方案资料:
2. Android项目导入指引
2.1 引用TUTK SDK
第一步:引入IOTCamera_2.5.0.23_release.aar
- (该库包含P2P连线及音视频相关功能),和Module(AVIOCTRLDEF,TUTK的底层SDK),位置如下:
第二步:在build.gradle添加引入的库
- 在app 的build.gradle的dependencies 添加
/ Kalay sdk /
implementation project(path: ':AVIOCTRLDEF', configuration:'default')
implementation(name: 'IOTCamera_2.5.1.8_release', ext: 'aar')
第三步:更新privateKey
- 引入库之后,在java层建立CommunicationModule.java文件,并替换privatekey,该值与appid和licenseKey是一一对应关系
第四步:调用RN封装类
- CommunicationModule.java是Camera方法封装类,里面有Camera各种调用方法和回调,该文件为引用IOTCamera的方法和react-natvie层的调用。
- IOTCameraLiveViewManager.java 视图管理类给react-natvie层调用。
2.2 注意事项
2.2.1 更换SDK和T库
- TUTK的SDK放在 AVIOCTRLDEF 的module,更换SDK版本时,只需要替换libs里面的so库,和在avioct里面的java文件就OK了。
- 如需要更换带T库,比如 更换IOTC的带T库 System.loadLibrary("IOTCAPIs");改为System.loadLibrary("IOTCAPIsT");
2.2.2 申请privateKey
- 每次启动需要初始化 ,Camera.TK_initIOTC的privatekey跟applicationId绑定一起,如有需要向TUTK申请
2.2.3 部分权限的开启
- 开启截图,需要开启读写权限
- 开启录像,需要开启读写权限和麦克风权限
- 开启对讲需要开启麦克风权限
2.2.4 新增指令
- 需要TK_registerIOTCListener注册回调,才会有回调产生
- 如需添加新的命令,请在CommunicationModule的回调添加解析后抛给js
2.2.5 获取设备的Wifi列表
- 解析方式在CommunicationModule的回调有例子;
2.2.6 事件回放
- 调用RN_commandGetPlaybackWithChannel,例:调用RN_commandGetPlaybackWithChannel(mCameraChannel, AVIOCTRLDEFs.AVIOCTRL_RECORD_PLAY_START, 0, time),其中time是AVIOCTRLDEFs.STimeDay类,在事件列表获得 AVIOCTRLDEFs.AVIOCTRL_RECORD_PLAY_START是回放的命令,具体命令在RN_commandGetPlaybackWithChannel上有注释
- 回放事件列表的获取解析EventInfo,可根据自己需求适当更改,或着自己重新定义一个类,在CommunicationModule的回调有例子
2.3 基于macOS平台开发项目
-
必须安装的依赖有:Node、JDK 和 配置 ANDROID_SDK_ROOT 环境变量(https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=5392fb9e5b3239a590539056aab6043e&file=file.png)
- 下载Homebrew,在命令行中执行下列命令安装(/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
Java Development Kit: 建议使用Homebrew来安装由 Azul 提供的 名为 Zulu 的 OpenJDK 发行版。此发行版同时为 Intel 和 M1 芯片提供支持。在 M1 芯片架构的 Mac 上相比其他 JDK 在编译时有明显的性能优势。 brew tap homebrew/cask-versions brew install --cask zulu11
-
配置 ANDROID_SDK_ROOT 环境变量: React Native 需要通过环境变量来了解你的 Android SDK 装在什么路径,从而正常进行编译。 具体的做法是把下面的命令加入到 shell 的配置文件中。如果你的 shell 是 zsh,则配置文件为~/.zshrc,如果是 bash 则为~/.bash_profile(可以使用echo $0命令查看你所使用的 shell。) 终端:open ~/.bash_profile
-
如果你不是通过Android Studio安装的sdk,则其路径可能不同,请自行确定清楚 export ANDROID_SDK_ROOT=~/Library/Android/sdk(此为SDK安装路径) export PATH=$PATH:$ANDROID_SDK_ROOT/emulator export PATH=$PATH:$ANDROID_SDK_ROOT/tools export PATH=$PATH:$ANDROID_SDK_ROOT/tools/bin export PATH=$PATH:$ANDROID_SDK_ROOT/platform-tools
source ~/.bash_profile 保存设置 译注:~表示用户目录,即/Users/你的用户名/
- 导入项目在命令窗口下直接运行该命令 npm install react-native start react-native run-android