Отправить push-уведомление с помощью Expo - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь отправить push-уведомление с помощью Expo, и я его получаю. Но на моем устройстве нет ни вибрации, ни звука, ни всплывающих окон. Я использую Galaxy S9 с Android 9. Я еще не пробовал на Iphone.

Push-уведомление отправляется nodejs, и пользователь, установивший приложение, получит push-уведомление. Пользовательский токен сохраняется в базе данных Firebase. Мне удалось сохранить и получить токен.

Ниже из экспозиции приложение

class App extends Component {
  componentWillMount() {
    firebase.initializeApp(config);
    this.registerForPushNotificationsAsync();
  }
  async registerForPushNotificationsAsync(){
    const { status: existingStatus } = await Permissions.getAsync(
      Permissions.NOTIFICATIONS
    );
    let finalStatus = existingStatus;

    if (Platform.OS === 'android') {
      Notifications.createChannelAndroidAsync('chat-messages', {
        name: 'Chat messages',
        sound: true,
        priority: 'high', // was max
        vibrate: [0, 250, 250, 250],
      });
    }
    if (existingStatus !== 'granted') {

      const { status } = await Permissions.askAsync(Permissions.NOTIFICATIONS);
      finalStatus = status;
    }

Ниже от серверной части nodejs

function sendMessage(to, title, body) {
    const expo = new Expo();
    let messages = [];

    messages.push({
        to, // Expo user token
        body,
        data: { withSome: 'data' },
        ios: {
            sound: true
        },
        android: {
            "channelId": "chat-messages" //and this
        }
    })
    let chunks = expo.chunkPushNotifications(messages);
    let tickets = [];
    (async () => {
        for (let chunk of chunks) {
            try {
                let ticketChunk = await expo.sendPushNotificationsAsync(chunk);
                tickets.push(...ticketChunk);
            } catch (error) {
                console.error(error);
            }
        }
    })();
}

Также можем ли мы перенаправить на веб-страницу, когда пользователь нажимает push-уведомление?

...