Hat .getModel() das gleiche Ergebnis auch auf Android? Was ist “Simulator”?
– zianwar
27. August 2016 um 23:40 Uhr
Tut mir leid, ich weiß nicht, ich habe nicht viel mit Android gemacht! Tolle Frage!
– Gasse Rettig
28. August 2016 um 3:08 Uhr
Dies funktioniert nicht auf Android-Simulatoren (zumindest in meinem)
– R01010010
22. Dezember 2016 um 23:09 Uhr
Verwenden Sie stattdessen DeviceInfo.isEmulator(). Ich habe die Antwort bearbeitet.
– Bruno Lemos
30. März 2017 um 0:04 Uhr
@BrunoLemos Ich glaube nicht, dass deine Bearbeitung gespeichert/akzeptiert wurde
– Marklar
16. Juni 2017 um 7:28 Uhr
Artal
Die einfachste Lösung, die ich mir vorstellen kann und für die kein natives Modul erstellt (oder ein vorhandenes geändert) werden muss, wäre, diesen Parameter als React-Komponenteneigenschaft zu übergeben.
In deiner AppDelegate bei dem die RCTRootView initialisiert ist, überprüfen Sie, ob es sich um den Simulator handelt, wie Sie es in einer normalen iOS-App tun würden; Sie übergeben diese Informationen dann als ihre an die Reaktionsstammansicht initialProperties:
Verwenden reagieren-native-geräte-info Sie können die folgenden Daten erhalten (ausgeführt auf einem Simulator):
getUniqueID: DB71DCB5-6BB0-497B-BE9E-A02BCC1235B7
getInstanceID: undefined
getDeviceId: x86_64
getManufacturer: Apple
getModel: Simulator
getBrand: Apple
getSystemName: iOS
getSystemVersion: 10.1
getBundleId: org.reactjs.native.example.project
getBuildNumber: 1
getVersion: 1.0
getReadableVersion: 1.0.1
getDeviceName:MacBook Pro
getUserAgent: Mozilla/5.0 (iPhone; CPU iPhone OS 10_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Mobile/14B72
getDeviceLocale: en
getDeviceCountry: US
getTimezone: America/Panama
isEmulator: true
isTablet: false
Derzeit gibt es keine Möglichkeit zu sehen, ob Sie von einem Simulator in JS aus ausgeführt werden.
Ich würde vorschlagen, die Bedingung hinzuzufügen TARGET_IPHONE_SIMULATOR um Ihren nativen Code einzuchecken (wenn Sie Ihr eigenes Modul geschrieben haben). Oder verwenden Sie vielleicht ein Modul eines Drittanbieters, das die Kamera nicht rendert, wenn sie sich in einem Simulator befindet … dh: React-native-camera: https://github.com/lwansbrough/react-native-camera/search?utf8=%E2%9C%93&q=TARGET_IPHONE_SIMULATOR
Kamen Zwetkow
import getHostForRN from 'rn-host-detect';
const IS_SIMULATOR = getHostForRN('127.0.0.1') == "localhost";
Dies funktioniert, um meinen iOS-Simulator von meinem tatsächlichen Gerät zu unterscheiden, da der Simulator zurückkehrt localhost und das iOS-Gerät kehrt zurück 127.0.0.1. Ich habe es nicht auf Android getestet, aber lassen Sie mich wissen, ob es Ihnen hilft.
11752900cookie-checkReact Native: Wie kann ich erkennen, ob mein Code im Simulator läuft?yes