Я знаю, что это возможно с помощью Swift:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if traitCollection.userInterfaceStyle == .light {
print("Light mode")
} else {
print("Dark mode")
}
}
Однако есть ли способ сделать это с помощью JavaScript?





Да...
https://www.npmjs.com/package/react-native-dark-mode
ИЛИ
https://github.com/codemotionapps/react-native-dark-mode
import { useDarkMode } from 'react-native-dark-mode'
function Component() {
const isDarkMode = useDarkMode()
return <View style = {{ backgroundColor: isDarkMode ? 'black' : 'white' }} />
}
У меня не работало автоматическое связывание на RN0.6+, когда был установлен последний модуль. Пришлось бежать: react-native link react-native-dark-modecd iospod install Пока не зарегистрировался
Вам не нужно react-native-dark-mode начиная с 0.62.2.
Вы можете использовать
import { Appearance } from 'react-native'
...
Appearance.getColorScheme() === 'dark'
Вот коммит, который его добавляет: https://github.com/facebook/react-native/commit/63fa3f21c5ab308def450bffb22054241a8842ef
Заглянув в проблемы github.com/facebook/react-native, я нашел только эту: github.com/facebook/react-native/issues/25322, которая была автоматически закрыта ботом.