Как использовать Expo Pu sh Token с Laravel -Exponent-Pu sh -Notifications? - PullRequest
1 голос
/ 21 апреля 2020

Редактировать: у меня появилась идея, что мы создаем таблицу с именем 'exponent_push_notifiation_interests' путем миграции. Вопрос здесь заключается в том, что это таблица, в которой будет находиться ключ pu sh? ... Я получил доступ к созданной таблице и нашел два столбца ключ и значение, и если да, как я мог получить доступ к токену, чтобы использовать его в фрагменте кода, упомянутом в пакете ReadMe.

Мы создаем приложение с помощью Expo и We пытаемся включить уведомления pu sh с помощью нашего внутреннего сервиса, который пишется с php (Laravel), мы работаем с Laravel -Exponent-Pu sh -Notifications

Следующий фрагмент кода используется для отправки Уведомления в Laravel проекте:

<?php
namespace App\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use NotificationChannels\ExpoPushNotifications\ExpoChannel;
use NotificationChannels\ExpoPushNotifications\ExpoMessage;
class Notification_app extends Notification
{
    use Queueable;

    public function __construct()
    {
        //
    }

    public function via($notifiable)
    {
        return [ExpoChannel::class];
    }

    public function toExpoPush($notifiable)
    {
       return ExpoMessage::create()
           ->badge(1)
           ->enableSound()
           ->title("Congratulations!")
           ->body("Your {$notifiable->service} account was approved!");
    }

    public function toArray($notifiable)
    {
       return [
           //
       ];
    }
}

Затем вызывается функция для отправки уведомления следующим образом: $data->notify(new Notification_app());

На клиенте сторона кода выглядит следующим образом:

useEffect(() => {
    registerForPushNotificationsAsync();
    Notifications.addListener(_handleNotification);
},
[])

const registerForPushNotificationsAsync = async () => {
    console.log(Constants.isDevice);
    if (Constants.isDevice) {
        const { status: existingStatus } = await Permissions.getAsync(Permissions.NOTIFICATIONS);
        let finalStatus = existingStatus;
        if (existingStatus !== 'granted') {
            const { status } = await Permissions.askAsync(Permissions.NOTIFICATIONS);
            finalStatus = status;
        }
        console.log(finalStatus);
        if (finalStatus !== 'granted') {
            alert('Failed to get push token for push notification!');
            return;
        }
        let token = await Notifications.getExpoPushTokenAsync();
        setExpoPushToken(token);
    } else {
        alert('Must use physical device for Push Notifications');
    }

    if (Platform.OS === 'android') {
        Notifications.createChannelAndroidAsync('default', {
            name: 'default',
            sound: true,
            priority: 'max',
            vibrate: [0, 250, 250, 250],
        });
    }
};

const _handleNotification = notification => {
    console.log(notification);
    Vibration.vibrate();
    if(notification.origin == 'selected'){
        props.navigation.navigate('MyTaskDetails');
    }
    setNotification();
};

Здесь мы генерируем токен Expo pu sh, тогда я знаю, что мы должны отправить его на сервер, чтобы каждый токен был связан с устройством, которое имеет наше приложение установлено. Мой вопрос здесь заключается в том, как использовать токен устройства (Expo Pu sh token) в приведенном выше коде Laravel для отправки уведомления на указанное c устройство. Нет параметров, относящихся к каким-либо ken ... приветствуется любая помощь или фрагмент кода, который может мне помочь.

...