Reference version

Expo 保持唤醒 iconExpo 保持唤醒

一个在渲染时防止屏幕进入休眠的 React 组件。

Android
iOS
tvOS
Web
Included in Expo Go
Bundled version:
~55.0.0

For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.

expo-keep-awake 提供了一个 React Hook,用于防止屏幕进入休眠,并提供了一对函数以命令式地启用此行为。

安装

Terminal
npx expo install expo-keep-awake

If you are installing this in an existing React Native app, make sure to install expo in your project.

用法

示例:hook

Keep Awake hook
import { useKeepAwake } from 'expo-keep-awake'; import React from 'react'; import { Text, View } from 'react-native'; export default function KeepAwakeExample() { useKeepAwake(); return ( <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}> <Text>This screen will never sleep!</Text> </View> ); }

示例:函数

Keep Awake functions
import { activateKeepAwake, deactivateKeepAwake } from 'expo-keep-awake'; import React from 'react'; import { Button, View } from 'react-native'; export default class KeepAwakeExample extends React.Component { render() { return ( <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}> <Button onPress={this._activate} title="Activate" /> <Button onPress={this._deactivate} title="Deactivate" /> </View> ); } _activate = () => { activateKeepAwake(); alert('Activated!'); }; _deactivate = () => { deactivateKeepAwake(); alert('Deactivated!'); }; }

API

import * as KeepAwake from 'expo-keep-awake';

Constants

KeepAwake.ExpoKeepAwakeTag

Android
iOS
tvOS
Web

Type: 'ExpoKeepAwakeDefaultTag'

Default tag, used when no tag has been specified in keep awake method calls.

Hooks

useKeepAwake(tag, options)

Android
iOS
tvOS
Web
ParameterTypeDescription
tag(optional)string

Tag to lock screen sleep prevention. If not provided, an ID unique to the owner component is used.

options(optional)KeepAwakeOptions

Additional options for the keep awake hook.


A React hook to keep the screen awake for as long as the owner component is mounted. The optionally provided tag argument is used when activating and deactivating the keep-awake feature. If unspecified, an ID unique to the owner component is used. See the documentation for activateKeepAwakeAsync below to learn more about the tag argument.

Returns:
void

Methods

Deprecated: use activateKeepAwakeAsync instead.

KeepAwake.activateKeepAwake(tag)

Android
iOS
tvOS
Web
ParameterTypeDescription
tag(optional)string

Tag to lock screen sleep prevention. If not provided, the default tag is used.

Default:ExpoKeepAwakeTag

Prevents the screen from sleeping until deactivateKeepAwake is called with the same tag value.

If the tag argument is specified, the screen will not sleep until you call deactivateKeepAwake with the same tag argument. When using multiple tags for activation you'll have to deactivate each one in order to re-enable screen sleep. If tag is unspecified, the default tag is used.

Web support is limited.

Returns:
Promise<void>

KeepAwake.activateKeepAwakeAsync(tag)

Android
iOS
tvOS
Web
ParameterTypeDescription
tag(optional)string

Tag to lock screen sleep prevention. If not provided, the default tag is used.

Default:ExpoKeepAwakeTag

Prevents the screen from sleeping until deactivateKeepAwake is called with the same tag value.

If the tag argument is specified, the screen will not sleep until you call deactivateKeepAwake with the same tag argument. When using multiple tags for activation you'll have to deactivate each one in order to re-enable screen sleep. If tag is unspecified, the default tag is used.

Web support is limited.

Returns:
Promise<void>

KeepAwake.deactivateKeepAwake(tag)

Android
iOS
tvOS
Web
ParameterTypeDescription
tag(optional)string

Tag to release the lock on screen sleep prevention. If not provided, the default tag is used.

Default:ExpoKeepAwakeTag

Releases the lock on screen-sleep prevention associated with the given tag value. If tag is unspecified, it defaults to the same default tag that activateKeepAwake uses.

Returns:
Promise<void>

KeepAwake.isAvailableAsync()

Android
iOS
tvOS
Web
Returns:
Promise<boolean>

true on all platforms except unsupported web browsers.

Event Subscriptions

KeepAwake.addListener(tagOrListener, listener)

Web
ParameterType
tagOrListenerstring | KeepAwakeListener
listener(optional)KeepAwakeListener

Observe changes to the keep awake timer. On web, this changes when navigating away from the active window/tab. No-op on native.

Returns:
EventSubscription

Example

KeepAwake.addListener(({ state }) => { // ... });

Types

KeepAwakeEvent

Android
iOS
tvOS
Web
PropertyTypeDescription
stateKeepAwakeEventState

Keep awake state.

KeepAwakeListener(event)

Web
ParameterType
eventKeepAwakeEvent
Returns:

void

KeepAwakeOptions

Android
iOS
tvOS
Web
PropertyTypeDescription
listener(optional)KeepAwakeListener
Only for:
Web

A callback that is invoked when the keep-awake state changes.

suppressDeactivateWarnings(optional)boolean

The call will throw an unhandled promise rejection on Android when the original Activity is dead or deactivated. Set the value to true for suppressing the uncaught exception.

Enums

KeepAwakeEventState

Android
iOS
tvOS
Web

RELEASE

KeepAwakeEventState.RELEASE = "release"