именно в капаситоре, ИМХО, лучше использовать их официальный плагин
https://capacitorjs.com/docs/apis/push-notifications вот так:
import { PushNotifications } from '@capacitor/push-notifications'
export async function getPushToken() {
let permStatus = (await PushNotifications.checkPermissions()).receive
if (permStatus === 'prompt') {
permStatus = (await PushNotifications.requestPermissions()).receive;
}
if (permStatus !== 'granted') {
throw new Error('User denied permissions!');
}
const res = new Promise((resolve, reject) => {
PushNotifications.addListener('registration', token => {
resolve(token.value)
});
PushNotifications.addListener('registrationError', err => {
reject(err.error);
});
})
PushNotifications.register();
return res
}
а в quasar дополнительно есть
https://quasar.dev/options/platform-detection и
https://quasar.dev/quasar-cli-vite/boot-files, которые можно сделать отдельно для капаситора, запихав эту функцию куда-нибудь в window, чтобы потом вызывать её в любом окружении (ну и можно еще сделать похожую функцию для PWA версии с сервис воркером используя пакет firebase/messaging от гугла напрямую)
также для капаситора есть хороший мануал, как эту всю шарманку завести
https://capacitorjs.com/docs/guides/push-notificat... (там для ios не совсем тривиально, да и для андроида надо очень внимательно читать)