私はすでに多くの境界ケースと奇妙な開発者インターフェースを見てきました。
「デバイスを振る」 から、これは実際には非現実的で、特にタブレットでは
回避策Android studio ボタンの押下をシミュレートします。
一貫した方法がありますか?インターンAPIを使用して、アプリ内にnavigator.popUpDevMenu()
などのメニューを起動するデバッグボタンを使用することはできませんか?
そうでない場合、タブレットをどのように振って動作させるのですか?これは、 実際のデバイスでHMRを構成する方法 も解決することを目的としています。 React nativeは開発エクスペリエンスを改善しますが、特定のことがそれを少し遅くします。
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デバイスに対してのみ機能し、上記の質問で提案されたハッキングです。
ここに私がやることがあります:
Android:
Package.jsonにスクリプトを追加します。
"Android-shake": "adb Shell input keyevent 82"
その後、yarn Android-shake
を呼び出して、Android(デバイスがコンピューターに接続されている限り)でメニューをポップアップすることができます)。
iOS
設定->アクセシビリティ-> AssistiveTouch
デバイスを振る代わりにタップできるボタンが表示されます。
これが他の人の助けになることを願っています。
開発モードで、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>
);
}
}
実際のデバイスでデバッグする必要があり、隣に同僚が座っている場合に非常に便利です。
Xiaomi電話をお持ちの場合、ポップアップウィンドウが開くのを防ぐセキュリティオプションがあるため、指定された回答は機能しません。アプリで許可する必要があります。
[設定]> [インストール済みアプリ]> [あなたのアプリ名]>権限マネージャーに移動し、「ポップアップウィンドウの表示」を有効にします。
もう一度振る。開発者のメニューは、少し振ると期待どおりにポップアップするはずです。
ソース: https://matthewphiong.com/debugging-react-native-app-on-a-xiaomi-phone
単純な絶対配置ボタンとこのonClickハンドラーを追加します
imoprt { NativeModules } from 'react-native';
...
onMenuButtonClick(){
NativeModules.DevMenu.show();
}