Редактировать: у меня появилась идея, что мы создаем таблицу с именем '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 ... приветствуется любая помощь или фрагмент кода, который может мне помочь.