Как добавить значок (изображение, логотип..) в строку состояния
Я заметил, что для компонента StatusBar (React Native) нет реквизита для включения значка или логотипа любого типа, как в этой документации:
https://facebook.github.io/react-native/docs/statusbar.html#statusbar
Я хотел бы, чтобы значок (или даже небольшой квадрат widспасибоheight) появлялся рядом с панелью сети непрерывно, пока приложение работает в фоновом режиме. Я попытался объединить компонент View со строкой состояния, чтобы создать небольшой красный прямоугольник, подобный этому:
<View style={styles.container}>
<StatusBar
backgroundColor="blue"
barStyle="light-content"
/>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
width: 20,
height: 20,
backgroundColor: 'red'
}
})
Однако красный квадрат просто появился ниже строки состояния. Есть идеи?
Изменить:
Я хочу, чтобы мой логотип приложения отображался в строке состояния, даже когда приложение находится в фоновом режиме. (приложения, предоставляющие услуги VPN и локализации, делают это иногда). ![это общие значки, которые мы видим в нашем статусе бар, но я хочу сделать свой собственный и разместить его там, скажем, за красным кругом или любым изображением в этом отношении..]()
Ответы
Ответ 1
Для iOS невозможно добавить какие-либо пользовательские значки в строке состояния, яблоко не позволяет это.
Для Android вы должны использовать Notification and Notification Manager. Просто напишите собственный модуль в java, который делает это, когда ваше приложение запускается.
React Native позволяет вам называть собственный модуль, написанный на Java, посмотрите здесь https://facebook.github.io/react-native/docs/native-modules-android.html
Вы также должны прочитать это для Notification Как показать значок в строке состояния при запуске приложения, в том числе в фоновом режиме?
Ответ 2
Вы не можете изменить строку состояния. Apple позволяет изменять внешний вид строки состояния. Для приложения ios возможно изменение внешнего вида в мире работает для вас.
Откройте файл .xcproj, сгенерированный ReactNative, и:
- В вашем Info.plist вам необходимо установить "Просмотреть состояние панели управления на основе контроллера" на логическое значение.
- установите его в NO, чтобы установить стиль в AppDelegate, добавив этот код в функцию didFinishLaunchingWithOptions:
UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: true)
Ответ 3
В строке состояния Android есть 2 вида значков.
Один вид - это системные значки, которые поступают из framework-res.apk и извлекаются в /system/framework, вы не можете изменять их без каких-либо повышенных привилегий на устройстве и монтировать системное изображение для чтения/записи.
Другим видом являются значки уведомлений, как упоминалось выше.
Для iOS вы не можете сильно изменить.
Снимок экрана показывает оба вида, и вы хотите поместить значок рядом с пиктограммой Network bars, но это системные значки (на Android).
Вот плагин, который касается уведомлений (и значков уведомлений) на обеих платформах и всех оболочек, прост в использовании с реакцией
Вы можете найти пример собственного кода для уведомления iOS здесь и Android здесь: