From 4699d35365db046a7f342ba2e43df9f53098e120 Mon Sep 17 00:00:00 2001 From: jiang_kui Date: Thu, 11 Dec 2025 15:28:29 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20[Issues:=20#IDCDN4]=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9Ereact-native-immersive=E6=8C=87=E5=AF=BC=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jiang_kui --- en/react-native-immersive.md | 343 +++++++++++++++++++++++++++++++ zh-cn/react-native-immersive.md | 348 ++++++++++++++++++++++++++++++++ 2 files changed, 691 insertions(+) create mode 100644 en/react-native-immersive.md create mode 100644 zh-cn/react-native-immersive.md diff --git a/en/react-native-immersive.md b/en/react-native-immersive.md new file mode 100644 index 00000000..5ca72ebe --- /dev/null +++ b/en/react-native-immersive.md @@ -0,0 +1,343 @@ +> Template version: v0.2.2 + +

+

react-native-immersive

+

+

+ + Supported platforms + + + License + +

+ + + +> [!TIP] [GitHub address](https://github.com/react-native-oh-library/react-native-immersive) + +Find the matching version information in the release address of the third-party library:: + +| version | Package name | Releases info | Support RN version | +| ------- | ----------------------------------------- | ------------------------------------------------------------ | ------------------ | +| 2.1.0 | @react-native-ohos/react-native-immersive | [@react-native-ohos/react-native-immersive Releases](https://github.com/react-native-oh-library/react-native-immersive/releases) | 0.72/0.77 | + +Go to the project directory and execute the following instruction: + +## Installation and Usage + + + + + +#### **npm** + +```bash +npm install @react-native-ohos/react-native-immersive +``` + +#### **yarn** + +```bash +yarn add @react-native-ohos/react-native-immersive +``` + + + +The following code shows the basic use scenario of the repository: + +> [!WARNING] The name of the imported repository remains unchanged. + +```js +import React, { Component } from 'react' +import { AppRegistry, StyleSheet, Text, View, Button, TextInput, Alert, Modal } from 'react-native' +import { Immersive } from 'react-native-immersive' + +class testReactNative extends Component { + constructor (props) { + super(props) + + Immersive.getImmersive().then((immersiveState) => { + console.log('init [getImmersiveState]', immersiveState) + this.setState({ immersiveState,isImmersive: immersiveState.isImmersiveOn }) + if(immersiveState.isImmersiveOn){ + Immersive.on() + } + }).catch((err) => { + console.error('[getImmersiveState] error', err) + }) + + this.setImmersiveOn = () => { + let startTime = Date.now(); + Immersive.on() + let endTime = Date.now(); + console.log("react-native-immersive on time:", endTime - startTime, "ms"); + this.setState({ isImmersive: true }) + } + this.setImmersiveOff = () => { + let startTime = Date.now(); + Immersive.off() + let endTime = Date.now(); + console.log("react-native-immersive off time:", endTime - startTime, "ms"); + this.setState({ isImmersive: false }) + } + this.setImmersiveTrue = () => { + let startTime = Date.now(); + Immersive.setImmersive(true) + let endTime = Date.now(); + console.log("react-native-immersive setImmersive time:", endTime - startTime, "ms"); + this.setState({ isImmersive: true }) + } + this.setImmersiveFalse = () => { + Immersive.setImmersive(false) + this.setState({ isImmersive: false }) + } + this.addImmersiveListener = () => { + if(!this.state.isAddListener){ + console.log("Immersive---------> addImmersiveListener",this.restoreImmersive); + let startTime = Date.now(); + Immersive.addImmersiveListener(this.restoreImmersive) + let endTime = Date.now(); + console.log("react-native-immersive addImmersiveListener time:", endTime - startTime, "ms"); + this.setState({ isAddListener: true }) + } + } + this.removeImmersiveListener = () => { + if(this.state.isAddListener){ + console.log("Immersive---------> removeImmersiveListener",this.restoreImmersive); + let startTime = Date.now(); + Immersive.removeImmersiveListener(this.restoreImmersive) + let endTime = Date.now(); + console.log("react-native-immersive removeImmersiveListener time:", endTime - startTime, "ms"); + this.setState({ isAddListener: false }) + } + } + + + this.getImmersiveState = () => { + let startTime = Date.now(); + Immersive.getImmersive().then((immersiveState) => { + let endTime = Date.now(); + console.log("react-native-immersive getImmersive time:", endTime - startTime, "ms"); + console.log('[getImmersiveState]', immersiveState) + this.setState({ immersiveState }) + }).catch((err) => { + console.error('[getImmersiveState] error', err) + }) + } + + this.restoreImmersive = () => { + Alert.alert("Callback","The registered listener callback has been invoked") + } + + this.state = { + isAddListener: false, + isImmersive: false, + isRestoreImmersive: true, + immersiveState: null + } + } + + render () { + const { isImmersive, immersiveState } = this.state + return ( + +