web-dev-qa-db-ja.com

実際のデバイスで反応ネイティブの開発メニューを開く方法

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

「デバイスを振る」 から、これは実際には非現実的で、特にタブレットでは

回避策Android studio ボタンの押下をシミュレートします。

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

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

26
jsdario

Macを使用している場合は、Frappeという便利なツールがあります。 https://github.com/niftylettuce/frappe

このコマンドはシェルから使用できます

adb Shell input keyevent 82

react-native run-Androidを実行していない場合、またはreact-native run-Androidを実行した後にデバイスが切断された場合。 開発サーバーのポートを再度有効にする が必要です。このコマンドを実行して、前のコマンドで再試行できます

adb reverse tcp:8081 tcp:8081

[〜#〜] edit [〜#〜]:このソリューションはAndroidデバイスに対してのみ機能し、上記の質問で提案されたハッキン​​グです。

60
agent_hunt

ここに私がやることがあります:

Android:

Package.jsonにスクリプトを追加します。

"Android-shake": "adb Shell input keyevent 82"

その後、yarn Android-shakeを呼び出して、Android(デバイスがコンピューターに接続されている限り)でメニューをポップアップすることができます)。

iOS

設定->アクセシビリティ-> AssistiveTouch

  1. それをオン。
  2. 最上位メニューのカスタマイズ...をタップします.
  3. 1つを除くすべてのアイコンを削除し、シェイクするように設定します。

デバイスを振る代わりにタップできるボタンが表示されます。

これが他の人の助けになることを願っています。

enter image description here

9
Francois Nadeau

開発モードで、devメニューを開くために、シェイクの代わりに3本の指でタッチすることができるライブラリを作成しました

https://github.com/pie6k/react-native-dev-menu-on-touch

アプリを内側にラップするだけです。

import DevMenuOnTouch from 'react-native-dev-menu-on-touch';
// or:  import { DevMenuOnTouch } from 'react-native-dev-menu-on-touch'

class YourRootApp extends Component {
  render() {
    return (
      <DevMenuOnTouch>
        <YourApp />
      </DevMenuOnTouch>
    );
  }
}

実際のデバイスでデバッグする必要があり、隣に同僚が座っている場合に非常に便利です。

2
pie6k

Xiaomi電話をお持ちの場合、ポップアップウィンドウが開くのを防ぐセキュリティオプションがあるため、指定された回答は機能しません。アプリで許可する必要があります。

[設定]> [インストール済みアプリ]> [あなたのアプリ名]>権限マネージャーに移動し、「ポップアップウィンドウの表示」を有効にします。

もう一度振る。開発者のメニューは、少し振ると期待どおりにポップアップするはずです。

ソース: https://matthewphiong.com/debugging-react-native-app-on-a-xiaomi-phone

1
ZedTuX

単純な絶対配置ボタンとこのonClickハンドラーを追加します

imoprt { NativeModules } from 'react-native';
...
onMenuButtonClick(){
 NativeModules.DevMenu.show();
}
1
Sajjad Ashraf