55

私はすでに多くのボーダーケースと奇妙な開発者インターフェースを見てきました。

特にタブレットでは、実際には実用的ではない「デバイスを振る」から

ボタンの押下をシミュレートするためにAndroid スタジオを操作するには。

それを行う一貫した方法はありますか?インターン API を使用して、アプリ内にデバッグ ボタンを配置し、次のようなメニューを起動することはできませんnavigator.popUpDevMenu()か?

そうでない場合は、タブレットを振って動作させるにはどうすればよいですか。これは、実際のデバイスで HMR を構成する方法も解決することを目的としています。React Native は開発エクスペリエンスを向上させますが、特定のことが少し遅くなると思います。

4

7 に答える 7

3

Androidで電話を振るのは時々迷惑です. 以下の変更を行うと、音量ダウン/アップキーを押して開発者メニューが開きます。

に次のコードを挿入しますandroid/../MainActivity.java

  @Override
  public boolean onKeyUp(int keyCode, KeyEvent event) {
      if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN && this.getReactInstanceManager() != null) {
          this.getReactInstanceManager().showDevOptionsDialog();
          return true;
      }
      return super.onKeyUp(keyCode, event);
  }

React Native Navigation V3を使用すると、次のコードが で動作しMainActivity.javaます。

  @Override
  public boolean onKeyUp(int keyCode, KeyEvent event) {
      if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN && this.getReactGateway().getReactNativeHost().getReactInstanceManager() != null) {
          this.getReactGateway().getReactNativeHost().getReactInstanceManager().showDevOptionsDialog();
          return true;
      }
      return super.onKeyUp(keyCode, event);
  }

この変更後、アプリを再度実行して、上記のコードをreact-native run-android.

RN 0.59+でテスト済み。

参照: https://facebook.github.io/react-native/docs/integration-with-existing-apps

編集:KeyEventファイル内の他のインポートと同様にインポートを含めます。

import android.view.KeyEvent;

于 2019-12-30T07:04:05.603 に答える