Cordova/Phonegap/IoniC语言 通过PushPlugin接收推送消息并将数据保存到localStorag



我已经建立了一个Ionic Framework项目,它接收GCM推送通知。我想在窗口中保存传入通知。app的localStorage .

这是我到目前为止所尝试的:

function onNotificationGCM(e) {
switch( e.event )
{
    case 'registered':
        if ( e.regid.length > 0 )
        {
            //call back to web service in Angular
            var elem = angular.element(document.querySelector('[ng-app]'));
            var injector = elem.injector();
            var myService = injector.get('PushProcessingService');
            myService.registerID(e.regid);
        }
        break;
    case 'message':
        if (e.foreground)
        {
           //no problem here, this works as the app is already open
           window.localStorage['notifications'] = e.payload.message;
        }
        else
        {   
            //saving to localStorage in here works only when the user opens the app via the received notification
            if (e.coldstart)
                window.localStorage['notifications'] = e.payload.message;
            else
                window.localStorage['notifications'] = e.payload.message;
        }
        break;
    case 'error':
        break;
    default:
        break;
    }
}

保存到窗口。当通知到达时,如果应用程序已经打开,localStorage工作,但是当应用程序关闭时,这些方法将不会被调用。只有当用户点击通知,然后打开应用程序时,才会发生这种情况。

是否有一种方法可以将通知数据保存到应用程序的localStorage,即使用户驳回了传入的推送通知?

一个解决方法是将所有通知存储在服务器上,并使应用程序在打开时检索它们,但我不想通过发出不必要的请求使应用程序变慢

假设GCM是可靠的,您只需要缓存消息。请阅读我对相关问题的回答。因此,即使用户取消了通知,应用程序仍将接收通知有效负载。这样你就可以保证你想要保存在localStorage中的数据会被送到你的手中。

注意:我还没有测试过,但当我有了这个答案时,我会更新这个答案。

相关内容

  • 没有找到相关文章

最新更新