KalayRN(简中版)

RN版本


#项目导入指引

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

页面列表

ITEM_HTML