it-swarm.com.ru

Как открыть меню «Реагировать-родной» на реальном устройстве?

Я уже видел ряд пограничных случаев и странный интерфейс разработчика.

От "встряхни свое устройство" , что действительно непрактично, особенно с планшетом

To работает вокруг Android studio для имитации нажатия кнопки.

Есть ли последовательный способ сделать это? Разве мы не можем использовать API-интерфейс intern, чтобы в нашем приложении была кнопка отладки для запуска такого меню, как navigator.popUpDevMenu()?

А если нет, то как вы качаете свой планшет, чтобы он заработал. Это предназначено для решения Как настроить HMR на реальном устройстве тоже. React native улучшает опыт разработки, но я бы сказал, что это немного замедляет процесс.

14
jsdario

Если вы на Mac, есть удобный инструмент под названием Frappe. https://github.com/niftylettuce/frappe

Вы можете использовать эту команду из командной консоли

adb Shell input keyevent 82

если не запустили react-native run-Android или если устройство отключилось после того, как вы запустили react-native run-Android. Вам необходимо повторно включить порт сервера разработки . Вы можете запустить эту команду и повторить попытку с предыдущей командой

adb reverse tcp:8081 tcp:8081

EDIT: это решение работает только для устройств Android и входит в число хаков, предложенных в приведенном выше вопросе. Так что это невозможно. Тем не менее, он выбран в качестве действительного ответа, пока это не произойдет.

41
agent_hunt

Вот что я делаю:

Android:

Добавьте скрипт в ваш package.json:

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

После этого вы сможете вызывать yarn Android-shake для всплывающего меню на Android (при условии, что устройство подключено к компьютеру).

iOS

Настройки -> Специальные возможности -> AssistiveTouch

  1. Включи это.
  2. Нажмите на Настроить меню верхнего уровня ...
  3. Удалите все значки, кроме одного, и установите его на встряхивание.

Это даст вам кнопку, которую вы можете нажать вместо встряхивания устройства.

Я надеюсь, что это может помочь другим.

 enter image description here

0
Francois Nadeau

В случае, если у вас есть телефон Xiaomi, данный ответ не будет работать, потому что есть опция безопасности, которая запрещает открывать всплывающее окно, и вам нужно разрешить его для вашего приложения:

Перейдите в «Настройки»> «Установленные приложения»> [Ваше имя приложения]> «Разрешения» менеджер и включите «Показать всплывающее окно».

Встряхните снова. Меню разработчика должно появиться, как и ожидалось, только с немного дрожит.

Источник: https://matthewphiong.com/debugging-react-native-app-on-a-xiaomi-phone

0
ZedTuX

Я создал библиотеку, которая позволяет использовать прикосновение 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>
    );
  }
}

Это действительно полезно, когда вам нужно отладить на реальном устройстве, и рядом с вами сидят сотрудники.

0
pie6k