J'ai déjà vu un certain nombre de cas de frontière et d'interface de développeur étrange.
Depuis le "secouez votre appareil" , ce qui n’est vraiment pas pratique, spécialement avec une tablette
Pour travailler autour du studio Android pour simuler une pression sur un bouton.
Y a-t-il une manière cohérente de le faire? Ne pouvons-nous pas utiliser une API interne pour avoir un bouton de débogage dans notre application pour lancer un menu tel que navigator.popUpDevMenu()
?
Et si non, comment secouez-vous votre tablette pour la faire fonctionner. Ceci est destiné à résoudre Comment configurer HMR sur un périphérique réel , aussi. React native améliore l'expérience de développement, mais je dirais que cela le ralentit un peu.
Si vous êtes sur un Mac, il existe un outil pratique appelé Frappe. https://github.com/niftylettuce/frappe
Vous pouvez utiliser cette commande depuis le shell
adb Shell input keyevent 82
si vous n'avez pas exécuté react-native run-Android
ou si le périphérique est déconnecté après avoir exécuté le react-native run-Android
. Vous devez réactiver le port du serveur de développement . Vous pouvez exécuter cette commande et réessayer avec la commande précédente
adb reverse tcp:8081 tcp:8081
EDIT: cette solution ne fonctionne que pour les appareils Android et fait partie des astuces proposées dans la question ci-dessus. Donc, c'est améliorable. Cependant, il est sélectionné comme réponse valide jusqu'à ce que cela se produise.
Voici ce que je fais:
Android:
Ajoutez un script à votre package.json:
"Android-shake": "adb Shell input keyevent 82"
Vous pourrez alors appeler yarn Android-shake
pour afficher le menu contextuel sur Android (tant que l'appareil est connecté à l'ordinateur).
iOS
Paramètres -> Accessibilité -> AssistiveTouch
Cela vous donnera un bouton que vous pouvez appuyer au lieu de secouer l'appareil.
J'espère que cela peut aider les autres.
Dans le cas où vous avez un téléphone Xiaomi, la réponse donnée ne fonctionnera pas, car une fenêtre contextuelle empêchée pour l'option de sécurité est ouverte et que vous devez l'autoriser pour votre application:
Allez dans Paramètres> Applications installées> [Nom de votre application]> Permission gestionnaire, et activez «Afficher la fenêtre contextuelle».
Secouez encore. Le menu du développeur devrait apparaître comme prévu avec juste un petite secousse.
Source: https://matthewphiong.com/debugging-react-native-app-on-a-xiaomi-phone
J'ai créé une bibliothèque qui vous permet d'utiliser 3 doigts au lieu de secouer pour ouvrir le menu dev, en mode développement
https://github.com/pie6k/react-native-dev-menu-on-touch
Vous devez seulement envelopper votre application à l'intérieur:
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>
);
}
}
C'est vraiment utile lorsque vous devez déboguer sur un périphérique réel et que des collègues sont assis à côté de vous.