diff --git a/en/react-native-immersive.md b/en/react-native-immersive.md new file mode 100644 index 0000000000000000000000000000000000000000..5ca72ebe1119d14a9bb6ecdeac13258958d25ac0 --- /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 ( + +