Is there a way to open dev menu or reload app without shaking the app?
Android Wireless over wifi so no usb cable Windows 10
Hot reload or Live reload is not goo
As @bennygenel hints, from that page you can see there is a command on Android through adb
adb shell input keyevent 82
to open menu on wireless devices
For iOS I like to wrap my app in a component like this which allows a 3 finger touch to trigger the dev menu:
import { NativeModules } from 'react-native';
// wraps the app in a function to allow three finger dev menu access
const DevMenuTrigger = ({ children }) => {
const { DevMenu } = NativeModules;
const panResponder = PanResponder.create({
onStartShouldSetPanResponder: (evt, gestureState) => {
if (gestureState.numberActiveTouches === 3) {
DevMenu.show();
}
},
});
return <View style={{ flex: 1 }} {...panResponder.panHandlers}>{children}</View>;
};
const DevApp = () => (<DevMenuTrigger><App /></DevMenuTrigger>);
// export default App;
export default DevApp;
I have added Shake
gesture to Assistive Touch
menu, and this works okay for me.
For me only using adb shell input keyevent 82
worked
for convenience you can add it to your scripts
inside the package.json
file
something link this:
"android-menu": "adb shell input keyevent 82"
also apparently there is an issue with KK devices - solved here
for android : in your package.json add following lines in scripts
"reload":"adb shell input keyevent 82 && adb shell input keyevent 66 && adb shell input keyevent 66",
"devmenu":"adb shell input keyevent 82",
"debug":"adb shell input keyevent 82 && adb shell input keyevent 61 && adb shell input keyevent 66 && adb shell input keyevent 66"
now you can run npm run devmenu
to open shake menu in android,
and reload
to reload the app, and debug
to connect to remote debugger.
for ios : you can make a button for it somewhere in app, and let this thing only be shown when app is in dev mode.
import {NativeModules,Platform} from "react-native"
renderDevMenuTouchable = () => {
if(__DEV__ && Platform.OS == "ios" ){
return (
<TouchableOpacity
style={styles.touchableDebug}
onPress={()=>{
NativeModules.DevMenu.reload();
}}
onLongPress={()=>{
NativeModules.DevMenu.show();
}}
>
<View style={{backgroundColor:"red",width:23,height:25}}/>
</TouchableOpacity>
)
}
else {
return null;
}
}
You can send a reload call to the device with: adb shell input keyboard text "rr"