Skip to content

2、ReactNative开发环境搭建和使用

官网参考说明文档:https://reactnative.cn/docs/environment-setup

开发平台选择windows,目标平台Android。

相关工具安装:Node、ADB

开发工具安装:vscode

2.1 本地环境

2.1.1 选定版本

  • React Native版本:0.63.5 React Native 0.64 开始不再支持Android 5.0 以下系统。 大部分机顶盒还在使用 4.4的系统

  • React版本:16.13.1 基于React Native 0.63.5版本匹配的稳定版本

  • Node版本:16.14.0 React Native >=0.73版本,node版本需大于等于18 React Native 0.72版本,node版本需大于等于16 React Native <= 0.71版本,node版本需大于等于14

  • JDK版本:11(可选) React Native >=0.73版本,JDK 需要 17 版本 React Native <0.73版本,JDK 需要 11 版本 React Native <0.67版本,JDK 需要 8 版本。

2.1.2 安装Node

  • Node 的版本必须大于等于14。

    • windows 7系统无法安装node 14以上版本
        创建纯RN项目或安装 React 和 React Native 模块时可能会出现这样的错误:
        The engine "node" is incompatible with this module. Expected version “=>14”
        可以在命令行先运行:
        $ yarn config set ignore-engines true 
        设置忽略引擎版本的检查,再去创建或安装。
    • 推荐用node 16版本 如果node版本大于16(node 18很常见)。则在启动metro时,会出现ERR_OSSL_EVP_UNSUPPORTED报错
          opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
          library: 'digital envelope routines',
          reason: 'unsupported',
          code: 'ERR_OSSL_EVP_UNSUPPORTED'
      原因: OpenSSL 在新版本中默认使用了更严格的加密算法和安全策略,与旧代码不兼容导致的。 解决方案: 1、node版本降到16 2、在package.json文件中start等相关命令前加上openssl-legacy-provider选项,设置如下
          "scripts": {
              "start": "set NODE_OPTIONS=--openssl-legacy-provider && react-native start"
          }
      3、设置环境变量NODE_OPTIONS。如下图: alt text
  • 安装包下载地址:

  • 查看当前Node版本 可以打开cmd,查看当前node版本信息 alt text

  • npm配置(可选)

    从官方源拉取npm 依赖,经常容易出现超时,拉取失败的情况。可以切换使用国内源,如淘宝源等

    • 使用指定源安装(临时使用淘宝源)
      npm install XXX(模块名) --registry https://registry.npmmirror.com
    • 全局设置
      • 查看当前源
        npm config get registry
      • 设置为淘宝源
        npm config set registry https://registry.npmmirror.com # 淘宝源
        或设置公司代理
        npm config set registry https://maven.ipanel.cn/repository/npm-ipanel-public/ # iPanel源
      • 还原默认源
        npm config set registry https://registry.npmjs.org/
      • 使用cnpm cnpm是一个命令,用它来代替npm
        npm install -g cnpm --registry=https://registry.npmmirror.com
        cnpm install XXX(模块名)
      • 使用nrm(推荐) nrm 是一个 npm 源管理器,允许你快速地在 npm源间切换
        npm install -g nrm # 安装nrm工具命令
        npx nrm use taobao # 切换到淘宝源
        npx nrm ls  # 查看当前可用源命令
        npx nrm use npm # 切换回官方源可使用

2.1.3 全局安装yarn(可选)

Yarn是 Facebook 提供的替代 npm 的工具,可以加速 node 模块的下载。 安装了node,就可以打开cmd通过npm进行安装。

  • 安装命令
    npm install -g yarn
    alt text
  • 如何使用yarn 用yarn代替npm install命令,用yarn add 某第三方库名代替npm install 某第三方库名。
    yarn add lodash # 安装lodash依赖
    yarn upgrade lodash # 更新lodash依赖
    yarn remove lodash # 卸载lodash依赖

2.1.4 安装ADB

ADB 全称为 Android Debug Bridge,起到调试桥的作用,是一个客户端-服务器端程序。其中客户端是用来操作的电脑,服务端是 Android 设备。

ADB 也是 Android SDK 中的一个工具,可以直接操作管理 Android 模拟器或者真实的 Android 设备。

  • 安装包下载地址

  • 配置环境变量 解压后,把解压路径放到系统变量(Path)里去。如下图: alt text

  • 查询adb版本

    adb version

    alt text

2.1.5 安装vscode

一路按“下一步”完成安装(安装路径可调整)

  • 配置安装(可选插件) 1、中文配置:Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code 2、ESLint:语法提示 3、Prettier:格式化 4、Live Server:本地服务 5、ES7+ React/Redux/React-Native snippets:快捷代码片段

2.1.6 创建React Native项目

  • 创建本地项目(常用)
    • 下载RN模板配置文件 git模板仓库

    • 安装所有依赖(package.json中)

      ipanel-rntv-core:2.0.2版本,npm install可用,yarn install不可用。由于yarn不支持自定义bin命令,会出现依赖安装完成后报不识别tvinit命令的异常。 ipanel-rntv-core:2.0.3以上版本,npm install和yarn install都可用

      npm install(推荐) 或 yarn install
    • 启动metro

      npm start 或 yarn start

      alt text

  • 创建指定版本项目[可选参数](不建议使用)

    你可以使用--version参数(注意是两个杠)创建指定版本的项目。注意版本号必须精确到两个小数点。不带--version参数创建react native最新版本项目

    npx react-native init tvDemoApp --version 0.63.5
    创建完成后,需要通过npm或者yarn去安装一系列的相关第三方依赖,并且版本还需要和TV软终端core版本保持一致(由于RN采用分包方式。RN core版本内置到APK中)

2.1.7 设备调试

  • 准备设备

    • 找一台智能(Android)机顶盒或电视机,安装一个软终端APK。
    • 设备需要进入“开发者选项”,打开“usb调试”。
  • 通过adb工具连接Android设备

    前提是调试的Android设备(通过WiFi或者网线连接到局域网)和PC端在同一个局域网内

    • 查询设备连接情况:
      adb devices
    • 连接设备:
      adb connect 192.168.31.189
    • 断开设备:
      adb disconnect
    • 安装apk到连接设备上:
      adb install -r D:\code\rn\example\react-native-tv-demo-master\android\app\build\outputs\apk\debug\app-debug.apk
    • 卸载apk:
      adb uninstall 【applicationId(com.ipanel.join.homed.stb)】
    • 重启adb服务:
      adb kill-server
      adb start-server
    • 输出打印:
      adb logcat
    • 杀掉应用(按键不响应时,可以杀掉应用,不用重启盒子)
      adb shell am force-stop 【applicationId(com.ipanel.join.homed.stb)】
  • am命令运行React Native应用

    先进入shell:adb shell

    • 1、访问metro服务器bundle
      am start -a host.OPEN -e _target_ rn_app -e devUrl 192.168.40.84:8081 -e app_name ReactNativeTvDemo
    • 2、访问本地bundle(内置APK RN模块中)
      am start -a host.OPEN -e _target_ rn_app
    • 3、访问在线bundle
      am start -a host.OPEN -e _target_ rn_app -e url http://192.168.40.84:8081/bundlejs/tvsport.zip -e app_name tvsport
  • adb logcat抓取日志

    一般的情况下,我们在做APP测试的时候,其实并不需要经常使用adb去抓取我们的日志,因为正常的情况下都是会有预期结果和实际结果作对比的。真正需要用到adb抓取日志的情况,就是在我们测试的过程中出现了异常的过程,比如测试过程中系统突然卡住不能动了、系统直接(Crash)崩溃掉了、应用程序无响应(ANR),即出现闪退或者异常的情况下就可以使用adb抓取日志来分析发生的原因,以便于更好的提bug给到开发。

    • 关闭软终端APK日志上传服务器功能

      • 进入apk后长按“菜单”键,进入后台设置页面,保存日志到文件(重启应用才生效)。 功能“关闭”,才会输出log到本地文件;“打开”,则上传到服务器。

      • 服务器日志下载:

        地址:https://git.ipanel.cn/1/wdoc/?p=NWY1NTBlZj.2&latest=1

        git工作组下载(通过设备appid或tvid):下载日志入口

    • 抓取日志

        1. 先adb connect连接设备。(连接后可在终端输入adb devices查看连接状态)
        1. 抓取日志前,清除旧的日志信息输入下面的命令并执行
        adb logcat -c
        1. 开始抓取日志,输入如下命令把日志写入到文件中:
        adb logcat -v time > D:\react-native\tv\log\log.log
        设备操作,然后按下Ctrl+C结束日志的抓取。(-v time的意思是按照时间记录日志)
        1. 查看本地日志文件。

2.2 在线环境

在线codeserver是公司IDE开发环境,即开发者网络平台。创建应用(根据向导模板),会同时创建一个源码仓和一个发布仓。 在线地址:https://code.ipanel.cn。(何小芬负责)

2.2.1 邀请用户注册加入

  • 1 运营人员通过邮件邀请开发者注册加入开发组织 alt text
  • 2 开发者收到邮件 alt text
  • 3 开发者点击邮件链接进行注册 alt text
  • 4 注册成功后开发者输入用户名密码登录,新消息提示中能查看到开发组织的邀请消息
  • 5 开发者点击消息中的"接受"或"拒绝"确认是否加入开发组织,并收到相应的结果提示消息 alt text
  • 6 邀请人也会收到相应的操作提示消息 alt text

2.2.2 创建项目、应用

  • 1 开发者从首页进入工作台,点击"应用视图"
  • 2 点击"创建应用"按钮,进入到开发组织节点的基于向导创建页面
  • 3 点击"开发项目",选择向导创建开发项目,填写项目负责人才能创建项目下的应用 alt text
  • 4 点击"电视JS-APP", 选择向导创建电视js_app,可以创建个人app或负责的项目的app, 等待创建完成的提示 alt textalt textalt text

2.2.3 应用任务问题清单列表

  • 1 开发人员、测试人员在工作台应用视图页面点击应用右侧图标进入查看、编辑任务问题清单列表 alt text
  • 2 点击"创建工单",通过标签进行任务与bug分类、可以设置优先级, 可以指派责任人 alt text
  • 3 点击对应任务bug工单,可以进一步添加进展评论、可以选择关闭任务或bug alt text
  • 4 可以开启中、已关闭状态的清单列表,通过筛选不同标签、指派人的任务或bug进行查看 alt text

2.2.4 应用开发调试

在源码仓进行源码修改、调试、预览、提交、打tag等相关开发工作。

  • 电视JS应用

    • 打开选择codesever

      1. 打开IDE开发平台公网首页:https://code.ipanel.cn
      2. 进入工作台:
        1. 已登陆,点击首页导航栏的"工作台"进入
        2. 未登录:点击首页导航栏的"工作台", 自动进入登录页面输入用户名密码,成功登录后自动跳转进入工作台。
        3. 未登录:点击首页导航栏的"登录/注册",输入用户名密码成功登录后自动跳回首页,点击工作台进入.
          效果如图: alt text
      3. 点击显示工作台"应用视图", 选择电视应用(类型为rn-tv), 点击vscode图标, 进入codeserver
    • 真机预览

      1. 等待codeserver加载完成应用的仓库后,目录文件区域显示应用名,展现下级目录显示源码仓与发布仓(带.release后缀)
      2. 修改源码仓debug.py文件,设置电视APPID(DEVICE_ID参数)、cloud集群(PULSER_URL参数,目前默认为ipanelcloud2)。软终端APK的“电视信息”查看APPID,如下图: alt text
      3. 定位到源码仓,打开终端,执行npm install、yarn start, 启动metro服务
      4. 定位到源码仓,打开另一个新终端,执行yarn debug, 会显示出codeserver代理的http地址,以及启动成功提示。
      5. 电视直接打开预览页面
      6. 真机预览过程中,执行修改代码,在焦点离开当前文件窗口时代码会自动保存,电视显示会实时刷新
      7. 预览过程中,运行的实时日志会在metro服务的终端打印出来,如:
      [Tue Aug 13 2024 10:11:11.919] LOG ......
      [Tue Aug 13 2024 10:11:11.919] LOG ......
  • 手机JS应用

    • 打开选择codesever

      1. 打开IDE开发平台公网首页:https://code.ipanel.cn
      2. 进入工作台:
        1. 已登陆,点击首页导航栏的"工作台"进入
        2. 未登录:点击首页导航栏的"工作台", 自动进入登录页面输入用户名密码,成功登录后自动跳转进入工作台。
        3. 未登录:点击首页导航栏的"登录/注册",输入用户名密码成功登录后自动跳回首页,点击工作台进入.
      3. 点击显示工作台"应用视图",选择手机应用(类型为rn-mobile), 点击vscode图标, 进入codeserver
    • 真机预览

      1. 等待codeserver加载完成应用的仓库后,目录文件区域显示应用名,展现下级目录显示源码仓与发布仓(带.release后缀)

      2. 定位到源码仓,打开终端,执行npm install、yarn start, 启动metro服务

      3. 定位到源码仓,打开另一个新终端,执行yarn debug, 会显示出codeserver代理的http地址。

      4. 手机摇一摇进入开发者模式。

        爱家宝metro版分ios和android不同app下载安装

        以ios为例,操作效果如下图:

        alt text

      5. 输入代理的http地址进行预览调试

        ios访问index.ios.js android访问index.android.js 直接访问index.js会报错,由于下载的手机APK模块名已固定。

        alt text

      6. 真机预览过程中,执行修改代码,在焦点离开当前文件窗口时代码会自动保存,电视显示会实时刷新。

      7. 预览过程中,运行的实时日志会在metro服务的终端打印出来,如:

      [Tue Aug 13 2024 10:11:11.919] LOG ......
      [Tue Aug 13 2024 10:11:11.919] LOG ......

2.2.5 应用编译打包

通过命令行命令,可以一键完成选基线、源码拉取、编译、打包、推送等工作.

  • 在源码仓 执行 yarn release 命令
    yarn release

2.2.6 应用发布使用

此系统分集群部署。提供对电视软终端APK和手机爱家宝APP提供接口获取某个应用APP在某个设备上依赖core版本所发布的APP包。需要管理员进入系统选择某个应用APP在某个运营商域下发布对应的APP版本。 服务器地址:http://ipanelcloud2.ipanel.cn:50080/jshomeapp/index/home(账号找陈杰) 说明:为与软终端APK的发布保持一致,基于运营商的发布会转为基于域的版本发布,正在测试中,测试ok后会同步。

  • 1、添加应用

在git仓库获取rn-tv应用仓库(特有标签)作为应用列表

alt textalt textalt text

  • 2、选择运营商发布应用

根据地址选择不同地区可添加一个运营商,在某个运营商下发布某个APP应用。

添加运营商模块(也可同时添加应用进行发布) alt text 添加发布应用:添加新应用发布到该运营商域; 发布:选择该应用的不同版本重新发布到该运营商域 alt textalt text

  • 3、TV端RN应用接口

    软终端APK打开每个RN应用时会调用接口获取,并通过版本比对是否有更新?

    入参说明:

    • appEnglishName: rn应用名称,创建应用时填写(配置入口时填的es_app_name)
    • useHermes:RN模块JS引擎是否使用hermes,支持预编译(字节码包),apk模块配置的。运行速度比JSC引擎要快
    • operatorId:软终端APK选择地址中对应的运营商id
    • coreVersion:软终端RN模块基础包版本号
//接口
    http://ipanelcloud2.ipanel.cn:50080/s/jshomeapp/tv/getRnAppInfo?appEnglishName=tvsport&useHermes=false&tvId=894e4e164b2bda39b6755dc80e1ead80e1d6849b&operatorId=e78aac2fc48b4588ad40a9d94d8dfade&tvAppId=EMBSTV4cc2e4760c40a5668515e193c7908eb8&coreVersion=2.0.2

//返参
{
    code: 0,
    data: {
    appChineseName: "运动健康",
    appEnglishName: "tvsport",
    appId: 2,
    coreVersion: "2.0.2",
    fileMd5: "ff82407636e400017f41c74a80d47625",
    operatorId: "e78aac2fc48b4588ad40a9d94d8dfade",
    operatorName: "B1-华数传媒",
    packZipUrl: "https://ipanelcloud2.ipanel.cn:50443/jshomeapp/appFiles/packFiles/rnapp/tvsport/android/v1.1.116/20240806110034/rnapptvsport_android_v1.1.116_20240806110034.zip",
    releaseDesc: "睡眠分布图变形问题修改",
    releaseTime: "2024-08-06 11:00:51",
    upgradeMode: "2",
    versionCode: "v1.1.116"
    },
    msg: "操作成功"
}

2.2.7 RN应用包使用

2.2.7.1 单独部署
  • 1 RN应用包部署 将发布仓最后编译打包下载的android.zip文件部署到支持http下载的服务器上

  • 2 入口配置

    • homed应用方式 在homed后台应用管理中创建空壳应用,挂载到具体的栏目或者专题上,并发布。
    • theme配置方式

    sContentRouteConfig下配置只能用action=host.OPEN方式打开,不能用package和className方式。

        "sEntryRouterConfig": { //注册target(用于爱奇艺、腾讯等栏目跳转链接使用)
            "health_center": "intent://?package=com.ipanel.join.homed.stb&className=com.ipanel.join.rn.MainActivity&es_app_name=tvsport&es_bundle_id=tvsport&es_bg_img=bg_health_img", //运动健康UI
            "systemTest": "intent://?action=host.OPEN&es__target_=rn_app&es_app_name=systemTest&es_url=http%3A%2F%2Fwebclient.homed.tv%2Fipanel%2FsystemTest.zip&es_bundle_id=123333&es_bundle_ver=v1.1.1&es_bg_img=bg_mode_standard_enter", // 系统设置的网络测速
            "product": "intent://?package=com.ipanel.join.homed.stb&className=com.ipanel.join.rn.MainActivity&es_app_name=tvshop&es_bundle_id=tvshop&es_routeto=Product", //商品详情,
            "shopping_cart": "intent://?package=com.ipanel.join.homed.stb&className=com.ipanel.join.rn.MainActivity&es_app_name=tvshop&es_bundle_id=tvshop&es_routeto=ShoppingCart", //购物车
            "order_list": "intent://?package=com.ipanel.join.homed.stb&className=com.ipanel.join.rn.MainActivity&es_app_name=tvshop&es_bundle_id=tvshop&es_routeto=MyOrderList", //我的订单
            "package_pay": "intent://?package=com.ipanel.join.homed.stb&className=com.ipanel.join.rn.MainActivity&es_app_name=tvshop&es_bundle_id=tvshop&es_routeto=PackagePay&es_packageld=$.id;" //套餐订购
        }
  • 3 RN应用地址规范(android)

        #action:固定host.OPEN
        #es__target:固定rn_app
        #es_app_name:应用名称
        #es_url:服务器部署的android.zip下载地址
        #es_bundle_id:应用id(暂时可随意)
        #es_bundle_ver:版本号(不变化时,软终端会有缓存,不重复下载;变化时,重启软终端则会重新下载更新)
        #es_bg_img:过渡背景图(可选,imgFiles配置的key名称,如:bg_health_img)
        intent://?action=host.OPEN&es__target_=rn_app&es_app_name=hxf_rntv_test1&es_url=http%3A%2F%2Fwebclient.homed.tv%2Fipanel%2FhnApp.zip&es_bundle_id=hxf_rntv_test1&es_bundle_ver=v1.0&es_bg_img=bg_health_img
  • 4 RN应用包更新部署

    • 1)需要修改homed空壳应用中应用地址中es_bundle_ver参数不同(往后追加,如v1.1):软终端做了版本管理无版本更新直接用缓存数据(后续软终端对接接口直接判断是否有对应应用版本更新,就不需要手动修改了)
    • 2)软终端apk需要重启
2.2.7.2 对接应用发布系统
  • 入口配置: 1、独立应用方式配置intent地址 2、theme配置

        //RN应用地址规范(android)。主要去掉url和bundle_ver参数
        #action:固定host.OPEN
        #es__target:固定rn_app
        #es_app_name:应用名称
        #es_bundle_id:应用id(暂时可随意)
        #es_bg_img:过渡背景图(可选,imgFiles配置的key名称,如:bg_health_img)
        intent://?action=host.OPEN&es__target_=rn_app&es_app_name=hxf_rntv_test1&es_bundle_id=hxf_rntv_test1
  • 软终端对接: 接口:http://ipanelcloud2.ipanel.cn:50080/s/jshomeapp/tv/getRnAppInfo

2.3 ipanel-rntv-core依赖发布

鉴于电视软终端APK提供一个RN应用开发平台。方便开发者更方便快捷的进入开发,将一些基础能力相关的依赖统一封装起来。由ipanel发布更新npm官网及ipanel镜像代理。

   "dependencies": {
       "@react-native-async-storage/async-storage": "1.17.11",
       "@react-native-community/slider": "3.0.0",
       "@react-native-masked-view/masked-view": "0.2.7",
       "@react-navigation/bottom-tabs": "6.5.7",
       "@react-navigation/material-bottom-tabs": "6.2.15",
       "@react-navigation/material-top-tabs": "6.6.2",
       "@react-navigation/native": "6.1.6",
       "@react-navigation/stack": "6.3.16",
       "@react-navigation/web": "1.0.0-alpha.9",
       "@rneui/base": "4.0.0-rc.7",
       "@rneui/themed": "4.0.0-rc.7",
       "@shopify/flash-list": "1.4.2",
       "date-fns": "2.29.3",
       "joi": "17.7.0",
       "md5": "2.3.0",
       "native-echarts": "0.5.0",
       "patch-package": "6.5.1",
       "prop-types": "15.8.1",
       "pubsub-js": "1.9.4",
       "qrcode-generator": "1.4.4",
       "react": "16.13.1",
       "react-dom": "16.13.1",
       "react-native": "0.63.5",
       "react-native-9patch-image": "0.3.4",
       "react-native-charts-wrapper": "0.5.11",
       "react-native-gesture-handler": "2.9.0",
       "react-native-linear-gradient": "2.6.2",
       "react-native-pager-view": "6.1.4",
       "react-native-paper": "5.2.0",
       "react-native-reanimated": "2.14.4",
       "react-native-safe-area-context": "3.4.1",
       "react-native-screens": "3.13.1",
       "react-native-smartassets": "1.0.4",
       "react-native-svg": "9.0.0",
       "react-native-tab-view": "3.4.1",
       "react-native-vector-icons": "9.2.0",
       "react-native-video": "5.1.1",
       "react-native-web": "0.14.3",
       "react-native-webview": "12.0.2",
       "react-native-wheel-picker-android": "2.0.6",
       "trtc-react-native": "2.4.1",
       "victory-native": "33.0.0"
   }
  • 可新增未包含的依赖

    • 纯JS依赖

    package.json直接加,不涉及原生android代码修改。所以也不需要升级APK。

       {
           "name": "tvsport",
           "version": "0.0.1",
           "private": true,
           "scripts": {
               "postinstall": "patch-package",
               "start": "react-native start",
               "android": "react-native run-android",
               "ios": "react-native run-ios",
               "test": "jest",
               "lint": "eslint ."
           },
           "dependencies": {
               "react": "16.13.1",
               "react-native": "0.63.5",
               "ipanel-rntv-core": "2.0.2",
               "crypto-js": "^4.2.0" // 新增
           },
           "devDependencies": {
               "@babel/core": "^7.12.10",
               "@babel/runtime": "^7.12.5",
               "@react-native-community/eslint-config": "^2.0.0",
               "eslint": "^7.18.0",
               "metro-react-native-babel-preset": "^0.64.0",
               "react-app-rewired": "^2.1.8",
               "react-scripts": "^4.0.1"
           }
       }
    • 涉及原生(android)依赖

    依赖安装后含有android目录,则需要软终端APK添加相应依赖模块并编译升级APK方可支持。

  • 基础包更新:

    基础包更新必须更新APK。则会发布新的ipanel-rntv-core版本

    1、涉及第三方依赖JS部分修改。需要通过补丁来编译,则需更新APK。 2、新增原生组件需打包到基础包。否则多个rn应用同时运行则闪退,引入地址不同,则需更新APK。

  • 查看ipanel-rntv-core版本

    • 查看路径 电视软终端-》工程菜单-》点击显示应用和系统信息
    • 查看效果 alt text

2.4 作业

  • 1 本地环境工具安装版本信息查询截图 alt text
  • 2 TV端RN应用模板项目安装依赖成功截图 alt text
  • 3 TV端RN应用模板项目启动metro服务截图 alt text
  • 4 完成注册加入ipanel开发组织,创建项目应用,在TV端RN应用模板预览效果截图 alt text
  • 5 在线创建应用编译发布版本截图

在APP.js中增加一段代码如下:(源码仓提交代码并打新tag进行编译打包推送到发布仓)

    <Section title="Learn More">
        Read the docs to discover what to do next:
    </Section>
    //改为
    <Section title="Learn More">
        Read the docs to discover what to do next:<Text style={{color:'red'}}>个人名字</Text>
    </Section>

alt text

  • 6 RN应用后台系统在线发布应用截图(应用名同上) alt text
  • 7 软终端首页打开应用效果图(做个应用挂homed测试栏目) alt text