Réagir Natif: Comment puis-je détecter si mon code est exécuté dans le Simulateur?
En Obj-C pour iOS, je peux utiliser #if (TARGET_IPHONE_SIMULATOR)
à écrire simulateur seul code.
À réagir native, je peux utiliser:
if (__DEV__) {
.. do something special
}
.. pour détecter le mode de développement.
Nous pouvons utiliser Platform.OS === 'ios'
pour détecter la plateforme (Android/iOS).
Voir ici pour plus d'info Plate-Forme De Docs
Mais comment pouvons-nous détecter si l'application est en cours d'exécution dans le simulateur?
La raison pour laquelle je demande, c'est que mon appli utilise l'appareil photo pour scanner des codes-barres, ce qui n'est pas pris en charge dans le Simulateur iOS.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire assez facilement avec réagir-native-appareil-info, comme suit:
La solution la plus simple je pense, qui ne nécessite pas la création d'un module natif (ou en modifier une existante), serait de passer ce paramètre en tant que réagir propriété de composant.
Dans votre
AppDelegate
où laRCTRootView
est initialisé, vous vérifier si c'est le simulateur comme vous le feriez dans une application iOS; vous pouvez alors passer cette info à la réagir la racine de vue que soninitialProperties
:Vous pouvez maintenant accéder en JavaScript via les accessoires de votre réagissent composant:
Sur Android, en vous
MainActivity
qui s'étendReactActivity
vous pouvez utiliser une approche similaire:Si vous êtes à la construction d'un CRNA/Expo application, vous pouvez utiliser
Expo.Constants.isDevice
https://docs.expo.io/versions/latest/sdk/constants/#constantsisdevice
À l'aide de réagir-native-appareil-info vous pouvez obtenir les données suivantes (exécuté sur un simulateur):
Actuellement, il n'y a pas moyen de voir si vous exécutez à partir d'un simulateur en JS.
Je suggère d'ajouter la condition
TARGET_IPHONE_SIMULATOR
de vérifier votre code natif (si vous avez écrit votre propre module). Ou peut-être utiliser une 3ème partie module qui ne rend pas l'appareil si dans un simulateur...c'est à dire: réagir-native-appareil photo: https://github.com/lwansbrough/react-native-camera/search?utf8=%E2%9C%93&q=TARGET_IPHONE_SIMULATOR