2017-07-14 19 views
4

誰かが自分の電話を開いたときに私が検出できる方法を知っていますか?私の理解のために、機器がロック解除されたとき(例えば、正しいパスワードが入力されたとき)、android.intent.USER_PRESENTが放送されますが、Reactネイティブで放送を検出する方法はわかりません。誰にも解決策がありますか? AppState API in FB(Face Book)React Nativeで画面のロックを解除する方法を教えてください。

+1

私はブリッジがまだ構築されていないと思っていますが、イベントが発行された場合は、それを聞くことができます –

答えて

4

ルックは、それはFB上の3州と5の合計を持っています。私はFBで3つしか見ることができませんが、他の2人は賛成できないかもしれません。

Active - アプリがフォアグラウンドで

backgroundを実行している - アプリがバックグラウンドで実行されています。ユーザーは別のアプリまたはホーム画面にあります。

inactive - これはフォアグラウンド&背景との間の移行時に発生している状態であり、このようなマルチタスク・ビューを入力として、または着信

の場合に非活動期間中にこれらの詳細についてリンゴDocsをチェック。

あなたは電話がロック画面に入っているときにどのような状態になるのかをテストする必要があります。私はapiをテストしたことがないので、どのような状態を使用するかを教えてくれません。

あなたがテスト下のコードから見ることができるよう

if (this.state.appState.match(/inactive|background/) && nextAppState === 'active') 

私はここにfacebooks例を取っている条件文で行われますがcomponentDidMountchangeイベントlistinerを添付しComponentWillUnmountに削除して、コードが意志されます州を踏みにじる

import React, {Component} from 'react' 
import {AppState, Text} from 'react-native' 

class AppStateExample extends Component { 

    state = { 
    appState: AppState.currentState 
    } 

    componentDidMount() { 
    AppState.addEventListener('change', this._handleAppStateChange); 
    } 

    componentWillUnmount() { 
    AppState.removeEventListener('change', this._handleAppStateChange); 
    } 

    _handleAppStateChange = (nextAppState) => { 
    if (this.state.appState.match(/inactive|background/) && nextAppState === 'active') { 
     console.log('App has come to the foreground!') 
    } 
    this.setState({appState: nextAppState}); 
    } 

    render() { 
    return (
     <Text>Current state is: {this.state.appState}</Text> 
    ); 
    } 

} 
関連する問題