打开开发菜单或重新加载应用程序而不摇晃

时间:2018-03-27 14:16:50

标签: react-native

有没有办法在不动摇应用程序的情况下打开开发菜单或重新加载应用程序?

的Android 无线上网,所以没有USB线 Windows 10

热重装或实时重装不够好,我的手臂疼!:)

8 个答案:

答案 0 :(得分:11)

对于android: 在package.json中,在脚本中添加以下行

 "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"

现在您可以运行npm run devmenu在android中打开“震动”菜单, reload重新加载应用程序,debug连接到远程调试器。

对于ios:您可以在应用程序中的某个位置为其设置一个按钮,并且仅在应用程序处于开发模式时才显示此东西。

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;
    }

}

答案 1 :(得分:6)

您可以配置长按Android系统Recent按钮至打开/关闭菜单

这将在本机应用程序中打开开发菜单。

enter image description here

答案 2 :(得分:4)

正如@bennygenel提示的那样,从该页面可以看到Android上的命令是通过adb

adb shell input keyevent 82

打开无线设备上的菜单

答案 3 :(得分:3)

您可以通过以下方式向设备发送重载呼叫:adb shell input keyboard text "rr"

答案 4 :(得分:1)

我在Shake菜单中添加了Assistive Touch手势,对我来说还可以。enter image description here

答案 5 :(得分:0)

对于iOS,我喜欢将应用程序包装在这样的组件中,该组件允许三指触摸来触发开发菜单:

if(!isset($_POST)){
    $name_error = "";
}
if(isset($_POST) && !empty($_POST)){
    $_SESSION['current'] = $_POST;
    $name_error = validateForm();
}

function validateForm() {
    $cust = $_SESSION['current']['cust'];
    $usermovie = $_SESSION['current']['movie'];
    $userseats = $_SESSION['current']['seats'];
    if(!preg_match('/[a-zA-Z ]+/', $cust['name']) || empty($cust['name'])){
        $name_error = "a-z only.";
    } else{
        $_SESSION['bookings'][] = $_SESSION['current'];
        echo 'pass';
        $name_error = "";
    }
    return $name_error;
}

答案 6 :(得分:0)

对我来说,仅使用adb shell input keyevent 82可以有效

为方便起见,您可以将其添加到scripts文件内的package.json

此链接: "android-menu": "adb shell input keyevent 82"

显然还有KK设备存在问题-solved here

答案 7 :(得分:0)

在 Android 中也可以通过音量键打开调试菜单。检查以下链接。

https://stackoverflow.com/a/59526945/958913