【发布时间】:2017-10-25 13:01:02
【问题描述】:
我想根据需要手动强制重新加载我的 React Native 应用程序,而无需实际晃动设备。 (我得到腕管。)
我知道 Live Reload / Hot Reload 可用。我正在寻找按需命令行解决方案。
【问题讨论】:
标签: react-native react-native-android
我想根据需要手动强制重新加载我的 React Native 应用程序,而无需实际晃动设备。 (我得到腕管。)
我知道 Live Reload / Hot Reload 可用。我正在寻找按需命令行解决方案。
【问题讨论】:
标签: react-native react-native-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!
【讨论】:
如果您使用的是 unix,一个技巧是将此命令添加到 ~/.bashrc 配置文件中。
nano ~/.bashrc
alias rnreload='adb shell input text "RR"'
source ~/.bashrc 以激活它。rnreload。下次你进入你的电脑应该已经完成了。
此外,还可以添加其他别名:alias rnshake='adb shell input keyevent 82',它会“震动”android。您可以使用它来访问其他命令,例如 Hot Reloading、Debugger、Inspector 等。
【讨论】:
将以下脚本添加到您的 package.json:
"android-shake": "adb shell input keyevent 82"
然后你就可以打电话了
yarn android-shake
如果您正在寻找 ios,请查看我在此 link 上的回答
【讨论】:
对于设备,您只需摇动设备即可出现菜单,因此请点击重新加载
【讨论】:
制作了一个自动热键脚本来重新加载并使用键盘快捷键打开菜单。
^+r:: run, %comspec% /c adb shell input text "RR",,hide
^+e:: run, %comspec% /c adb shell input keyevent 82,,hide
ctrl+shift+r 重新加载 ctrl+shift+e 打开开发菜单
【讨论】:
把它贴在这里,以防你不知道这个技巧
在您的 Android 设备中长按菜单按钮。然后你会得到这个菜单
点击重新加载选项,一切顺利
【讨论】:
使用 cmd 行,您可以向 Android 设备发送命令。
adb shell input text "RR"
此命令告诉 Android 设备键入字符“R”两次,这是在 Android 上重新加载的 React Native 命令。
adb shell 命令具有许多有用的功能,其中许多功能在此处进行了描述:
打开开发者菜单:
adb shell input keyevent 82
【讨论】:
adb shell "input keyevent 82 && input keyevent 66 && input keyevent 66"。它在开发者菜单中手动点击“重新加载”
adb 命令:adb -s <device nane> shell input text "RR"
我使用以下命令。它不会重新加载应用程序,但会在设备上显示开发者菜单,因此我可以按下“重新加载”选项:
adb shell input keyevent KEYCODE_MENU
我使用真实设备(不是模拟器)进行开发,通过 adb 发送“双 R”不起作用(它只显示键盘并键入 2 个 R)。
【讨论】: