我想按需手动强制重新加载我的React Native应用程序,而无需物理摇动设备。(我要去腕管。)
我知道可以使用实时刷新/热刷新。我正在寻找按需命令行解决方案。
Answers:
使用cmd行,您可以将命令发送到Android设备。
adb shell input text "RR"
此命令告诉Android设备键入两次字符“ R”,这是要在Android上重新加载的React Native命令。
该adb shell
命令具有许多有用的功能,其中许多功能在此处介绍:
要打开开发者菜单:
adb shell input keyevent 82
adb
简单的命令,则可以执行以下操作:adb -s <device nane> shell input text "RR"
如果您不知道此技巧,只需在此处发布
长按Android设备中的菜单按钮。然后你会得到这个菜单
点击重新加载选项,您就可以开始了
我使用以下命令。它不会重新加载应用程序,但是会在设备上弹出开发者菜单,因此我可以按“重新加载”选项:
adb shell input keyevent KEYCODE_MENU
我使用真实设备(而不是仿真器)进行开发,并且通过adb发送“ double-R”不起作用(它仅显示键盘并键入2 Rs)。
一种技巧是在使用UNIX的情况下,将此命令添加到〜/ .bashrc配置文件中。
nano ~/.bashrc
alias rnreload='adb shell input text "RR"'
source ~/.bashrc
以激活它。rnreload
在终端上键入即可。下次输入计算机时,应该已经完成了。
另外,还可以添加其他别名:alias rnshake='adb shell input keyevent 82'
“摇动” android。您可以使用它来访问其他命令,例如热重载,调试器,检查器等。
如果您使用Mac并使用Hammerspoon,则可以在~/.hammerspoon/init.lua
文件中添加以下代码:
hyper = {'ctrl', 'alt', 'cmd'}
placid = {'ctrl', 'cmd'}
-- React native reload JS on connected device
hs.hotkey.bind(placid, 'R', function()
os.execute('/Users/peter/Library/Android/sdk/platform-tools/adb shell input text "RR"')
end)
-- React native show dev menu on connected device
hs.hotkey.bind(hyper, 'R', function()
os.execute('/Users/peter/Library/Android/sdk/platform-tools/adb shell input keyevent 82')
end)
该os.execute
命令不会加载您的ENV(这样做会使运行命令的速度变慢),因此请确保which adb
在您的终端中运行以找出确切的路径adb
。(就我而言,/Users/peter/Library/Android/sdk/platform-tools/adb
)。
现在,您可以在任何地方使用来重新加载您的应用ctrl+cmd+R
并使用来显示开发菜单ctrl+option+cmd+R
,而无需费心从您喜欢的编辑器中使用cmd-tab!
adb shell "input keyevent 82 && input keyevent 66 && input keyevent 66"
。它在开发人员菜单中手动点击“重新加载”