выставочный фон push-уведомления в iOS - PullRequest
1 голос
/ 21 апреля 2019

Сначала я волновался, что на выставке была система пользовательских уведомлений (заставил меня подумать: «может быть, у вас есть p8», если вы знаете такую ​​рекламу, ха-ха).В конце концов, я был впечатлен тем, насколько легко и просто отправлять сообщения с помощью службы push-уведомлений expo.Единственная проблема, с которой я столкнулся, состояла в том, чтобы понять, что этот никогда не будет работать на симуляторе.В противном случае, это действительно довольно изящно, даже проще, чем p8.

Но я замечаю другую модель поведения, когда пытаюсь отправить фоновое уведомление.В этом случае, похоже, ничего не происходит.

Моя платформа - iOS, а мой компонент приложения имеет расширение, которое привязывается к this, а затем отключается только один раз:

extensionAPN.js

import { Alert } from 'react-native'
import { Permissions, Notifications } from 'expo'
import AsyncStorage from '@callstack/async-storage'

import { handleNotification } from '@src/lib/APNs'

export async function registerForPushNotifications () {
  const { status } = await Permissions.getAsync(Permissions.NOTIFICATIONS)

  if (status !== 'granted') {
    const { status } = await Permissions.askAsync(Permissions.NOTIFICATIONS)
    if (status !== 'granted') {
      Alert.alert('received no permission to listen to APNs')
      return
    }
  }

  const expoToken = await Notifications.getExpoPushTokenAsync()
  Alert.alert('recieved permission to listen to APNs with token ' + expoToken)

  this.subscription = Notifications.addListener(handleNotification)

  this.setState({ expoToken })
  AsyncStorage.setItem('expoToken', expoToken)
}
import { Alert } from 'react-native'

export async function handleNotification () {
  Alert.alert(JSON.stringify(arguments))
  console.log('arguments', arguments)
}

В другом месте я поделился этим токеном, чтобы я мог отправить его.Я заметил, что это не работает, когда мой сервер отправил свое фоновое сообщение, хотя он регистрируется как успешный из POST (не открывал приложение, не добавлял всплывающее окно Alert ..., даже если приложение было впередний план, без всплывающих окон).Поэтому я перешел к инструменту PN и, конечно же, к первому «миру приветствия», над которым я работал.Тут же тоже работает.

Но если я настрою его как свое собственное сообщение с доступными данными, категориями и содержимым JSON - и ничего больше , ничего не произойдет.Не на переднем плане, не на заднем плане.Не когда закрыто.: Хмурится:

...