Как добавить значок (изображение, логотип..) в строку состояния

Я заметил, что для компонента 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 здесь: