【React Native】文件翻譯閱讀紀錄 - APIs - BackHandler

by - 上午9:00

Facebook Open Source React Native



BackHandler

檢測硬件按鈕按下以進行後退導航。

Android:檢測硬件後退按鈕,如果沒有偵聽器或者沒有任何偵聽器返回true,則以編程方式調用默認後退按鈕功能以退出應用程序。

tvOS:檢測按下電視遙控器上的菜單按鈕。 (仍有待實現:如果沒有偵聽器或者沒有任何偵聽器返回true,則以編程方式禁用菜單按鈕處理功能以退出應用程序。)

iOS:不適用。

事件訂閱以相反的順序調用(即,首先是最後註冊的訂閱),如果一個訂閱返回true,則不會調用先前註冊的訂閱。

例:

BackHandler.addEventListener('hardwareBackPress', function() {
  // this.onMainScreen and this.goBack are just examples, you need to use your own implementation here
  // Typically you would use the navigator here to go to the last state.

  if (!this.onMainScreen()) {
    this.goBack();
    return true;
  }
  return false;
});
生命週期示例:
  componentDidMount() {
    BackHandler.addEventListener('hardwareBackPress', this.handleBackPress);
  }

  componentWillUnmount() {
    BackHandler.removeEventListener('hardwareBackPress', this.handleBackPress);
  }

  handleBackPress = () => {
    this.goBack(); // works best when the goBack is async
    return true;
  }
生命週期替代:
  componentDidMount() {
    this.backHandler = BackHandler.addEventListener('hardwareBackPress', () => {
      this.goBack(); // works best when the goBack is async
      return true;
    });
  }

  componentWillUnmount() {
    this.backHandler.remove();
  }

Methods


參考

Methods

exitApp()

static exitApp()

addEventListener()

static addEventListener(eventName, handler)

removeEventListener()

static removeEventListener(eventName, handler)


You May Also Like

0 意見