wake-up-neo.com

Laden Sie eine React Native-App manuell über die Befehlszeile auf ein Android-Gerät

Ich möchte manuell ein Neuladen meiner React Native-App erzwingen, ohne das Gerät physisch zu schütteln. (Ich bekomme einen Karpaltunnel.)

Ich weiß, dass Live Reload/Hot Reload verfügbar ist. Ich suche nach einer On-Demand-Befehlszeilenlösung.

35
brettlaforge

Über die cmd-Zeile können Sie einen Befehl an das Android-Gerät senden. 

adb Shell input text "RR"

Dieser Befehl weist das Android-Gerät an, zweimal das Zeichen "R" einzugeben. Dies ist der Befehl React Native zum Neuladen auf Android.

Der Befehl adb Shell bietet viele nützliche Funktionen, von denen viele hier beschrieben werden:

ADB-Shell-Eingabeereignisse

So öffnen Sie das Entwicklermenü:

adb Shell input keyevent 82
94
brettlaforge

Ich benutze den folgenden Befehl. Die App wird nicht neu geladen, aber das Entwicklermenü auf dem Gerät wird angezeigt. Ich kann dann die Option "Reload" drücken:

adb Shell input keyevent KEYCODE_MENU

Ich entwickle mit einem echten Gerät (nicht dem Emulator) und das Senden des "double-R" durch adb funktioniert nicht (es zeigt nur die Tastatur und gibt 2 Rs ein).

10
Xavier

Einfach hier posten, falls Sie diesen Trick nicht kennen

Langes Drücken der Menütaste in Ihrem Android-Gerät. Dann bekommst du dieses Menü

tippe auf die Reload-Option und du kannst loslegen

8
vighnesh s

Fügen Sie dem package.json das folgende Skript hinzu:

    "Android-shake": "adb Shell input keyevent 82"

Dann können Sie anrufen 

yarn Android-shake

Wenn Sie nach ios suchen, dann checken Sie meine Antwort auf diesen link

3
Francois Nadeau

Erstellung eines Autohotkey-Skripts zum erneuten Laden und Öffnen des Menüs mit Tastenkombinationen.

   ^+r::  run, %comspec% /c adb Shell input text "RR",,hide  
   ^+e::  run, %comspec% /c adb Shell input keyevent 82,,hide

ctrl + shift + r zum erneuten Laden von ctrl + shift + e zum Öffnen des Dev-Menüs

1
Yarden Hochman

Wenn Sie auf einem Mac arbeiten und Hammerspoon verwenden, können Sie das folgende Codebit in Ihre ~/.hammerspoon/init.lua -Datei einfügen:

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)

der Befehl os.execute lädt Ihre ENV nicht (dies würde die Ausführung von Befehlen sehr verlangsamen). Stellen Sie daher sicher, dass Sie which adb in Ihrem Terminal ausführen, um herauszufinden, wie der genaue Pfad zu adb lautet. ist. (in meinem Fall war es /Users/peter/Library/Android/sdk/platform-tools/adb).

Jetzt können Sie Ihre App mit ctrl+cmd+R neu laden und das Dev-Menü mit ctrl+option+cmd+R von jedem Ort aus anzeigen, ohne sich mit cmd-tab aus Ihrem Lieblingseditor zu beschäftigen!

0
HendrikPetertje

Ein Trick wäre, diesen Befehl im ~/.bashrc-Profil hinzuzufügen, falls Sie Unix verwenden.

  1. verwenden Sie Ihren bevorzugten Editor (ex: nano unter Ubuntu) und geben Sie nano ~/.bashrc ein.
  2. am Ende der Datei schreiben alias rnreload='adb Shell input text "RR"'
  3. speichern Sie es und führen Sie source ~/.bashrc aus, um es zu aktivieren.
  4. Nun, wann immer Sie brauchen, geben Sie einfach rnreload in ein Terminal ein.

Das nächste Mal, wenn Sie Ihren Computer betreten, sollte dies bereits geschehen.

Es besteht auch die Möglichkeit, einen weiteren Alias ​​hinzuzufügen: alias rnshake='adb Shell input keyevent 82', der Android "schüttelt". Sie können damit auf andere Befehle wie Hot Reloading, Debugger, Inspector usw. zugreifen.

0
Filipe

Bei einem Gerät müssen Sie Ihr Gerät nur schütteln, sobald ein Menü angezeigt wird. Klicken Sie auf Neu laden

0
Asma_Kh