如何检查我的 React-Native 应用程序是在网络浏览器中运行还是在 ios/android 应用程序中运行?

Nic*_*fer 10 javascript react-native expo

基本上就是标题所说的。我知道平台组件(https://reactnative.dev/docs/platform-specific-code)可用于检查应用程序正在运行的设备。不过,根据我的理解,如果应用程序在 ios/android 上的网络浏览器中运行,平台将无法识别它是作为应用程序运行还是在浏览器中运行。document == 'undefined我可以做类似的事情(如果浏览器为 true,如果应用程序为 false)吗?我很感激任何指导。

顺便说一下,我正在使用expo。

bre*_*tne 28

import { Platform } from 'react-native';

if (Platform.OS === 'ios') {
  // do something for ios
} else if (Platform.OS === 'android') {
  // other thing for android
} else if (Platform.OS === 'web') {
  // it's on web!
} else {
  // you probably won't end up here unless you support another platform!
}
Run Code Online (Sandbox Code Playgroud)

我建议遵循 Expo 文档开头提供的完整教程,处理平台差异部分涵盖了这一点,您可以从其他部分学到其他有价值的信息。

  • @NicholasPfeiffer 绝对是“网络”;如果应用程序作为实际的 iOS 应用程序运行,它只会返回“ios”。React *native* 的重点是创建本机应用程序。最近的一项功能是能够使用相同的代码库在浏览器中运行它们。 (3认同)