# example-new **Repository Path**: hisako/example-new ## Basic Information - **Project Name**: example-new - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-26 - **Last Updated**: 2026-05-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README > 文档模板:v0.4.1 #
react-native-exit-app
本项目基于 [react-native-exit-app](https://github.com/wumke/react-native-exit-app) 开发。 | 三方库名称 | 三方库版本 | 发布信息 | 支持RN版本 | Autolink | 编译API版本 | 社区基线版本 | npm地址 | | ------------ | ------------ | ------------------------------ | ------------- | ------------- |------------------------ | ------------- | ------------- | | @react-native-ohos/react-native-exit-app | ~ 2.0.0 | [Gitcode Releases](https://gitcode.com/openharmony-sig/rntpc_react-native-exit-app/releases) | 0.61.* | 否 | API12+ | 2.0.0 | [Npm Address](https://www.npmjs.com) | ## 简介 react-native-exit-app 用于彻底退出、关闭、终止或关闭React Native应用。 ## 下载安装 进入到工程目录并输入以下命令: **npm** ```bash npm install @react-native-ohos/react-native-exit-app ``` **yarn** ```bash yarn add @react-native-ohos/react-native-exit-app ``` ## Link | | 是否支持autolink | RN框架版本 | |--------------------------------------|-----------------|------------| | ~ 2.0.0 | No | 0.61 | 使用AutoLink的工程需要根据该文档配置,Autolink框架指导文档:https://gitcode.com/openharmony-sig/ohos_react_native/blob/master/docs/zh-cn/Autolinking.md 如您使用的版本支持 Autolink,并且工程已接入 Autolink,可跳过ManualLink配置。
ManualLink: 此步骤为手动配置原生依赖项的指导 首先需要使用 DevEco Studio 打开项目里的 HarmonyOS 工程 `harmony`。 ### 1. Overrides RN SDK 为了让工程依赖同一个版本的 RN SDK,需要在工程根目录的 `oh-package.json5` 添加 overrides 字段,指向工程需要使用的 RN SDK 版本。替换的版本既可以是一个具体的版本号,也可以是一个模糊版本,还可以是本地存在的 HAR 包或源码目录。 关于该字段的作用请阅读[官方说明](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-oh-package-json5-V5#zh-cn_topic_0000001792256137_overrides) ```json { "overrides": { "@rnoh/react-native-openharmony": "^0.77.64" // ohpm 在线版本 // "@rnoh/react-native-openharmony" : "./react_native_openharmony.har" // 指向本地 har 包的路径 // "@rnoh/react-native-openharmony" : "./react_native_openharmony" // 指向源码路径 } } ``` ### 2. 引入原生端代码 目前有两种方法: - 通过 har 包引入; - 直接链接源码。 方法一:通过 har 包引入(推荐) > [!TIP] har 包位于三方库安装路径的 `harmony` 文件夹下。 打开 `entry/oh-package.json5`,添加以下依赖 ```json "dependencies": { "@react-native-ohos/react-native-exit-app": "file:../../node_modules/@react-native-ohos/react-native-exit-app/harmony/exit_app.har" } ``` 点击右上角的 `sync` 按钮 或者在命令行终端执行: ```bash cd entry ohpm install ``` 方法二:直接链接源码 > [!TIP] 如需使用直接链接源码,请参考[直接链接源码说明](https://gitcode.com/OpenHarmony-RN/usage-docs/blob/master/zh-cn/link-source-code.md) ### 3. 配置 CMakeLists 和引入 ExitAppPackage 打开 `entry/src/main/cpp/CMakeLists.txt`,添加: ```diff project(rnapp) cmake_minimum_required(VERSION 3.4.1) set(CMAKE_SKIP_BUILD_RPATH TRUE) set(RNOH_APP_DIR "${CMAKE_CURRENT_SOURCE_DIR}") set(NODE_MODULES "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../node_modules") + set(OH_MODULES "${CMAKE_CURRENT_SOURCE_DIR}/../../../oh_modules") set(RNOH_CPP_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../../react-native-harmony/harmony/cpp") set(LOG_VERBOSITY_LEVEL 1) set(CMAKE_ASM_FLAGS "-Wno-error=unused-command-line-argument -Qunused-arguments") set(CMAKE_CXX_FLAGS "-fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -s -fPIE -pie") set(WITH_HITRACE_SYSTRACE 1) # for other CMakeLists.txt files to use add_compile_definitions(WITH_HITRACE_SYSTRACE) add_subdirectory("${RNOH_CPP_DIR}" ./rn) # RNOH_BEGIN: manual_package_linking_1 add_subdirectory("../../../../sample_package/src/main/cpp" ./sample-package) + add_subdirectory("${OH_MODULES}/@react-native-ohos/react-native-exit-app/src/main/cpp" ./exit_app) # RNOH_END: manual_package_linking_1 file(GLOB GENERATED_CPP_FILES "./generated/*.cpp") add_library(rnoh_app SHARED ${GENERATED_CPP_FILES} "./PackageProvider.cpp" "${RNOH_CPP_DIR}/RNOHAppNapiBridge.cpp" ) target_link_libraries(rnoh_app PUBLIC rnoh) # RNOH_BEGIN: manual_package_linking_2 target_link_libraries(rnoh_app PUBLIC rnoh_sample_package) + target_link_libraries(rnoh_app PUBLIC rnoh_exit_app) # RNOH_END: manual_package_linking_2 ``` 打开 `entry/src/main/cpp/PackageProvider.cpp`,添加: ```diff #include "RNOH/PackageProvider.h" #include "SamplePackage.h" + #include "ExitAppPackage.h" using namespace rnoh; std::vector> PackageProvider::getPackages(Package::Context ctx) { return { std::make_shared(ctx), + std::make_shared(ctx) }; } ``` ### 4. 在 ArkTs 侧引入 ExitAppPackage 打开 `entry/src/main/ets/RNPackagesFactory.ts`,添加: ```diff ... + import { ExitAppPackage } from '@react-native-ohos/react-native-exit-app/ts'; export function createRNPackages(ctx: RNPackageContext): RNPackage[] { return [ + new ExitAppPackage(ctx) ]; } ```
### 运行 点击右上角的 `sync` 按钮 或者在命令行终端执行: ```bash cd entry ohpm install ``` 然后编译、运行即可。 ## 约束与限制 ### 兼容性 本文档内容基于以下版本验证通过: 1. RNOH: 0.61; SDK: HarmonyOS 6.0.0 Release SDK; IDE: DevEco Studio 6.0.0.858; ROM: 6.0.0.112; ## 使用示例 下面的代码展示了这个库的基本使用场景: > [!WARNING] 使用时 import 的库名不变。 ```javascript import React from "react"; import { StyleSheet, Button, View } from "react-native"; import RTNExitApp from "react-native-exit-app"; export default function App(): React.JSX.Element { return (