首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在KaiOS应用中实现推送通知

如何在KaiOS应用中实现推送通知
EN

Stack Overflow用户
提问于 2020-02-19 16:24:41
回答 2查看 846关注 0票数 4

我正试图在KaiOS应用程序中实现推送通知。我只是遵循下面的链接。

跟踪所有链接后,push在浏览器中工作,但在KaiOS应用程序中不起作用。如果任何人有任何样本代码或文件,请分享。

任何帮助都将是学徒。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-23 11:34:53

1)首先,在manifest.webapp中添加此权限

代码语言:javascript
复制
    "permissions": {
          "serviceWorker":{
             "description": "required for handle push."
          },
          "push":{
             "description": "New update push."
          },
          "desktop-notification": {
             "description": "New content update notification for the user."
          }
       }

2)服务工作者文件sw.js代码

代码语言:javascript
复制
self.addEventListener('push', function(event) {
    event.waitUntil(
        self.registration.showNotification('My Push', {
            body: 'Push Activated',
        })
    );
});

self.addEventListener('activate', e => {
    self.clients.claim();
});

3)在应用程序启动时添加服务人员

代码语言:javascript
复制
registerSW : function() {
    if ('serviceWorker' in navigator) {
        navigator.serviceWorker.register('./sw.js').then(function(reg) {
            console.log('Service Worker Registered!', reg);
            reg.pushManager.getSubscription().then(function(sub) {
                if (sub === null) {

                } else {
                    console.log('Subscription object: ', sub);
                }
            });
        }).catch(function(e) {
            console.log('SW reg failed');
        });
    }
}

4)通过任何dom元素(如按钮)调用服务工作人员。

代码语言:javascript
复制
registerServiceWorker: function() {
    Notification.requestPermission().then(function(permission) {
        if (permission === 'granted') {
            if ('serviceWorker' in navigator) {
                navigator.serviceWorker.ready.then(function(reg) {

                    reg.pushManager.subscribe({
                        userVisibleOnly: true
                    }).then(function(sub) {
                        console.log('Endpoint URL: ', sub.endpoint);

                    }).catch(function(e) {
                        if (Notification.permission === 'denied') {
                            console.warn('Permission for notifications was denied');
                        } else {
                            console.error('Unable to subscribe to push', e);
                        }
                    });
                })
            }
        }
    });
}

就这样。

票数 3
EN

Stack Overflow用户

发布于 2020-04-23 05:13:14

我也遇到了同样的问题,但是我遵循了这个简单的web推送通知方法,

https://medium.com/@seladir/how-to-implement-web-push-notifications-in-your-node-react-app-9bed79b53f34

我也解决了这个问题,现在它正常工作了。请不要忘记在manifest.webapp文件中添加下面这样的权限。

代码语言:javascript
复制
"permissions": {
    "serviceworker": {
        "description": "Needed for assocating service worker"
    },
    "desktop-notification": {
        "description": "Needed for creating system notifications."
    },
    "notifications": {},
    "push": {
        "description": "Required for being updated with new goals in soccer matches"
    },
    "geolocation": {
        "description": "Marking out user location"
    },
    "alarms": {
        "description": "Scheduling alarms"
    }
},

同时,请参考这份kaios文档,以便在kaios设备上运行应用程序。

https://developer.kaiostech.com/getting-started/build-your-first-hosted-app/pwa-to-hosted-app

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60304889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档