• Login
    • Search
    • Categories
    • Recent
    • Tags
    • Users
    • Groups
    • Rules
    • Help

    Do more on the web, with a fast and secure browser!

    Download Opera browser with:

    • built-in ad blocker
    • battery saver
    • free VPN
    Download Opera

    AbortError: Registration failed - push service error

    Русский
    1
    1
    62
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • vectorserver
      vectorserver last edited by vectorserver

      Престала работать подписка на PUSH уведомления, в баг репорте на 2 моих обращения уже больше месяца не отвечают!
      На данный момент версия браузера: 122.0.5643.142
      Замечу сразу, в других браузерах Microsoft Edge, Chrome все работает отлично!

      При создании подписки (subscription ) вылетает AbortError: Registration failed - push service error

      https://cleverpush.com/en/test-notifications/
      6995e984-a274-4206-91e5-a6df57b0993f-image.png

      async function initPush() {
        if (!('serviceWorker' in navigator)) {
          console.warn('ServiceWorker не поддерживается');
          return;
        }
      
        try {
          const reg = await navigator.serviceWorker.register('/mypush-service-worker.js');
          await navigator.serviceWorker.ready;
          console.log('✅ SW зарегистрирован', reg);
      
          const btn = document.createElement('button');
          btn.textContent = 'Разрешить уведомления';
          btn.style = 'bottom:20px;right:20px;padding:10px;background:red;color:white;border:none;border-radius:8px;';
          document.body.appendChild(btn);
      
          btn.addEventListener('click', async () => {
            const perm = await Notification.requestPermission();
            if (perm !== 'granted') {
              alert('Разрешите уведомления!');
              return;
            }
      
            try {
              const vapidKey = 'BGBrZo_OfZEMS3msxlJkxxRAk0NN7inbBCP6_dY8u1gN8kLNRPvQOf4Lt40lMTmaNNrVL8T1ZIb8lp5YBh4oiJc';
              const keyArray = urlBase64ToUint8Array(vapidKey);
      
              const subscription = await reg.pushManager.subscribe({
                userVisibleOnly: true,
                applicationServerKey: keyArray,
              });
      
              console.log('✅ Подписка успешна', subscription);
              await sendSubscriptionToServer(subscription);
              alert('Уведомления успешно активированы!');
              btn.remove();
            } catch (err) {
              console.error('❌ Ошибка подписки', err.name, err.message);
              if (err.name === 'AbortError') {
                alert('Ошибка Push-сервиса. Проверьте VAPID-ключ или HTTPS.');
              }
            }
          });
        } catch (err) {
          console.error('Ошибка регистрации Service Worker:', err);
        }
      }
      
      function urlBase64ToUint8Array(base64String) {
        const padding = '='.repeat((4 - base64String.length % 4) % 4);
        const base64 = (base64String + padding).replace(/-/g, '+').replace(/_/g, '/');
        const rawData = atob(base64);
        return Uint8Array.from([...rawData].map(ch => ch.charCodeAt(0)));
      }
      
      async function sendSubscriptionToServer(subscription) {
        const res = await fetch('/save_subscription.php', {
          method: 'POST',
          body: JSON.stringify(subscription),
          headers: { 'Content-Type': 'application/json' },
        });
        if (!res.ok) throw new Error('Не удалось сохранить подписку');
      }
      
      initPush();
      
      Reply Quote 0
        1 Reply Last reply
      • Moved from Opera for computers by  leocg leocg 
      • First post
        Last post

      Computer browsers

      • Opera for Windows
      • Opera for Mac
      • Opera for Linux
      • Opera beta version
      • Opera USB

      Mobile browsers

      • Opera for Android
      • Opera Mini
      • Opera Touch
      • Opera for basic phones

      • Add-ons
      • Opera account
      • Wallpapers
      • Opera Ads

      • Help & support
      • Opera blogs
      • Opera forums
      • Dev.Opera

      • Security
      • Privacy
      • Cookies Policy
      • EULA
      • Terms of Service

      • About Opera
      • Press info
      • Jobs
      • Investors
      • Become a partner
      • Contact us

      Follow Opera

      • Opera - Facebook
      • Opera - Twitter
      • Opera - YouTube
      • Opera - LinkedIn
      • Opera - Instagram

      © Opera Software 1995-