如何在没有推送服务的情况下触发来自phonegap应用的通知?

时间:2017-07-01 20:45:40

标签: javascript cordova phonegap

我跟随tutorial on the PhoneGap documentation,它的示例应用程序运行良好,但在制作我自己的应用程序时,我无法弄清楚如何将PushNotification对象放入我的单页 - 应用程序。

我猜测Phonegap正在基于 config.xml 构建一个神秘的 cordova.js 文件,并且PushNotification被添加到根目录这个神秘文件中的window范围。

到目前为止,我已经尝试过......

  • 在我的 www / index.html
  • 中加入<script src="cordova.js"></script>
  • 确保<plugin name="phonegap-plugin-push" ...位于我的 config.xml 文件
  • 在我应用的JavaScript中添加了if (typeof PushNotification === 'undefined') { alert("No PushNotification"); }。在浏览器中本地测试(显然没有找到cordova文件),以及通过Android设备上的PhoneGap应用程序进行测试时,这似乎总是如此。

1 个答案:

答案 0 :(得分:0)

push.on('notification', function(data) {
  console.log('notification event');
  navigator.notification.alert(
    data.message,         // message
    null,                 // callback
    data.title,           // title
    'Ok'                  // buttonName
  );
});

当应用收到推送通知(通知事件)时,将触发上述事件处理程序,称为

当您使用phonegap-plugin-push时,它是如何开发的。 你不能触发它。它仅在收到推送通知时发生。

您只需添加插件并在应用中添加这些行即可。这应该正确接收通知。 根据您的应用使用cordova或phonegap添加插件,

cordova plugin add phonegap-plugin-push 
phonegap plugin add phonegap-plugin-push

然后在PushNotification之后直接在js文件中发起OnDeviceReady

var push = PushNotification.init({
    android: {
         "senderID": "XXXXXXXX" //Your sendeer ID from Firebase Cloud Messenger (FCM)
    },
    browser: {
        pushServiceURL: 'http://push.api.phonegap.com/v1/push'
    },
    ios: {
        alert: "true",
        badge: "true",
        sound: "true"
    },
    windows: {}
});

push.on('registration', function(data) {
    // data.registrationId 
    //store this in your server for future use
});

push.on('notification', function(data) {
    // data.message,
    // data.title,
    // data.count,
    // data.sound,
    // data.image,
    // data.additionalData
});

push.on('error', function(e) {
    // e.message
});