J'aimerais forcer manuellement le rechargement de mon application React Native à la demande sans secouer physiquement l'appareil. (Je vais avoir un canal carpien.)
Je sais que Live Reload/Hot Reload sont disponibles. Je recherche une solution de ligne de commande à la demande.
À l'aide de la ligne de commande, vous pouvez envoyer une commande au périphérique Android.
adb Shell input text "RR"
Cette commande indique au périphérique Android de taper le caractère "R" deux fois, qui correspond à la commande Réagir natif pour recharger sur Android.
La commande adb Shell
possède de nombreuses fonctionnalités utiles, dont beaucoup sont décrites ici:
Evénements d'entrée du shell ADB
Pour ouvrir le menu du développeur:
adb Shell input keyevent 82
J'utilise la commande suivante. Il ne recharge pas l'application, mais il ouvre le menu du développeur sur l'appareil. Je peux ensuite appuyer sur l'option "Recharger":
adb Shell input keyevent KEYCODE_MENU
Je développe avec un vrai périphérique (pas l'émulateur) et l'envoi du "double-R" via adb ne fonctionne pas (il montre juste le clavier et les types 2 Rs).
Il suffit de poster ici au cas où vous ne connaissiez pas cette astuce
appuyez longuement sur le bouton de menu de votre appareil Android. Ensuite, vous aurez ce menu
appuyez sur l'option de rechargement et vous êtes prêt à partir
Ajoutez le script suivant à votre package.json:
"Android-shake": "adb Shell input keyevent 82"
Ensuite, vous pourrez appeler
yarn Android-shake
Si vous êtes à la recherche d’ios, consultez ma réponse sur ce lien
Fait un script autohotkey pour recharger et ouvrir le menu avec des raccourcis clavier.
^+r:: run, %comspec% /c adb Shell input text "RR",,hide
^+e:: run, %comspec% /c adb Shell input keyevent 82,,hide
ctrl + Maj + r pour recharger Ctrl + Maj + e pour ouvrir le menu dev
Si vous utilisez un Mac et que vous utilisez Hammerspoon , vous pouvez mettre le code suivant dans votre fichier ~/.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)
la commande os.execute
ne charge pas votre ENV (cela ralentirait l'exécution des commandes), assurez-vous donc de lancer which adb
dans votre terminal pour déterminer le chemin exact vers adb
. est. (dans mon cas c'était /Users/peter/Library/Android/sdk/platform-tools/adb
).
Maintenant, vous pouvez recharger votre application en utilisant ctrl+cmd+R
et afficher le menu de développement en utilisant ctrl+option+cmd+R
de n'importe où et sans même vous soucier de cmd-tab de votre éditeur préféré!
Une astuce consiste à ajouter cette commande sur le profil ~/.bashrc dans le cas où vous utiliseriez unix.
nano ~/.bashrc
alias rnreload='adb Shell input text "RR"'
source ~/.bashrc
afin de l'activer.rnreload
sur un terminal.La prochaine fois que vous entrez dans votre ordinateur, cela devrait déjà être fait.
En outre, il est également possible d’ajouter un autre alias: alias rnshake='adb Shell input keyevent 82'
qui "secoue" Android. Vous pouvez l'utiliser pour accéder à d'autres commandes telles que le rechargement à chaud, le débogueur, l'inspecteur, etc.
Pour un appareil, il suffit de secouer votre appareil, puis un menu apparaît.