如何在真实设备上打开 react-native 的开发菜单

IT技术 android ios reactjs react-native webpack-hmr
2021-03-30 16:47:50

我已经看到了一些边界情况和奇怪的开发人员界面。

来自“摇动你的设备”,这真的不切实际,尤其是在平板电脑上

使用Android Studio模拟按下按钮。

有没有一致的方法来做到这一点?我们不能使用实习 API 在我们的应用程序中有一个调试按钮来启动这样的菜单navigator.popUpDevMenu()吗?

如果没有,您如何摇晃平板电脑以使其正常工作。这也旨在解决如何在真实设备上配置 HMRReact Native 确实改善了开发体验,但我会说特定的事情会减慢它的速度。

6个回答

如果您使用的是 mac,有一个方便的工具叫做 Frappe。https://github.com/niftylettuce/frappe

您可以在 shell 中使用此命令

adb shell input keyevent 82

如果尚未运行react-native run-android或在您运行react-native run-android. 您需要重新启用开发服务器端口您可以运行此命令并使用上一个命令重试

adb reverse tcp:8081 tcp:8081

编辑:此解决方案仅适用于 android 设备,并且是上述问题中提出的黑客之一。所以是可以改进的。然而,它被选为有效答案,直到发生这种情况。

此命令也适用于 Windows 10 和 Android 6 Marshmallow。
2021-05-24 16:47:50
Frappe 不适用于 mac 设备(ipad、iphone)
2021-06-02 16:47:50
这对我不起作用。我正在使用带有 5.1.1 的小米红米 pro 3。keyevent 只显示正在运行的应用程序列表。有什么帮助吗?
2021-06-04 16:47:50
2021-06-07 16:47:50
我提到了这些是解决方法。不过,它们比我描绘的更精致。
2021-06-11 16:47:50

这是我所做的:

安卓:

将脚本添加到您的 package.json:

"android-shake": "adb shell input keyevent 82"

然后,您将能够调用yarn android-shake以在 Android 上弹出菜单(只要设备已连接到计算机)。

IOS

设置 -> 辅助功能 -> AssistiveTouch

  1. 打开它。
  2. 点击自定义顶级菜单...
  3. 删除除一个之外的所有图标,并将其设置为抖动。

这会给你一个按钮,你可以点击而不是摇动设备。

在此处输入图片说明

我希望这可以帮助其他人。

我添加了一个简单的绝对定位按钮和这个 onClick 处理程序

imoprt { NativeModules } from 'react-native';
...
onMenuButtonClick(){
 NativeModules.DevMenu.show();
}
这实际上是一个好主意。您也可以仅在DEV上添加按钮,以便仅在那时可用。
2021-06-05 16:47:50
在 RN 0.66 中,此module被删除。仅提供了几个可用的 API NativeModules.DevSettings
2021-06-19 16:47:50

我创建了一个库,允许您在开发模式下使用 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>
    );
  }
}

当您必须在真实设备上进行调试并且您的同事坐在您旁边时,这非常有用。

如果您有小米手机,给出的答案将不起作用,因为有一个安全选项阻止弹出窗口打开,您需要为您的应用程序允许它:

进入设置 > 已安装的应用程序 > [您的应用程序名称] > 权限管理器,并启用“显示弹出窗口”。

再摇一摇。开发人员菜单应该会按预期弹出,只需稍微晃动一下。

来源:https : //matthewphiong.com/debugging-react-native-app-on-a-xiaomi-phone

来一个@Mr_Perfect,大约一个小时后你就打开了你的问题:)。其实你已经有评论和答案了。
2021-06-09 16:47:50
我想要一些回应。没有人回答。我被困 :(
2021-06-12 16:47:50
@Mr_Perfect 您的问题与 react-native 无关,与 reactjs 无关。
2021-06-18 16:47:50
stackoverflow.com/questions/51036405/...请在该链接中回答我的问题
2021-06-20 16:47:50