Ionic Cordova:Push Notification 插件 onMessage 接收消息。

Posted

技术标签:

【中文标题】Ionic Cordova:Push Notification 插件 onMessage 接收消息。【英文标题】:Ionic Cordova : Push Notification plugin onMessage receive message. 【发布时间】:2017-08-05 20:21:11 【问题描述】:

我正在使用 ionic cordova 开发一个聊天应用程序。当用户收到新消息时,我正在使用 PushNotification。问题是当用户收到新消息时。我的应用程序必须在服务后台更新聊天列表。但是,ionic cordova 无法在后台进行服务。如何在后台更新聊天列表?一旦用户 onMessage() 在 PushNotification 插件中收到通知,我有一个想法创建一个自定义插件,它将调用另一个自定义插件。在自定义插件中,我使用 urlconnection 调用 php 服务器以从服务器获取最新信息。接下来,自定义插件正在更新手机中的 sqlite 信息。这样做是一种好习惯吗?

【问题讨论】:

【参考方案1】:

我建议您修改推送通知插件代码。每当您收到通知时,在 GCMIntentService.java 中都会检查应用程序是处于前台还是后台。如果应用不在前台,则使用以下语法将通知负载数据保存在 SharedPreferences

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
      SharedPreferences.Editor editor = settings.edit();
      editor.putString("pushdata", data);

      // Commit the edits!
      editor.commit();

每当用户打开应用时,检查共享偏好并使用以下插件获取存储的数据。

cordova plugin add cordova-plugin-shared-preferences --save

获取共享偏好的示例代码

document.addEventListener('deviceready', () => 
  const prefs = window.plugins.SharedPreferences
  prefs.getSharedPreferences('shared_preferences', 'MODE_PRIVATE', () => 
    prefs.putString('pref_key', 'some text')

    prefs.getString('pref_key', (value) => 
      alert(value)
    , (error) => 
      // handle error
    )
  , (error) => 
    // handle error
  )

希望对你有所帮助。

【讨论】:

以上是关于Ionic Cordova:Push Notification 插件 onMessage 接收消息。的主要内容,如果未能解决你的问题,请参考以下文章

安装cordova push插件后,Ionic build ios失败

无法为我的 ionic 3 应用程序安装 cordova phonegap-push-plugin

安装cordova插件后我无法在ionic中构建android apk

ionic 3 热更新 Hot Code Push

Ionic - 向同一组中的用户推送通知

ionic app 热更新