簡體   English   中英

在沒有推送服務的情況下,如何從phonegap應用觸發通知?

[英]How do I trigger a notification from a phonegap app without a push service?

我遵循了PhoneGap文檔上教程,教程在其示例應用程序中運行良好,但是在制作自己的應用程序時,我不知道如何將PushNotification對象放入我的單頁應用程序中。

我猜想Phonegap正在基於config.xml構建一個神秘的cordova.js文件,並且PushNotification已添加到此神秘文件內的根window范圍。

到目前為止,我已經嘗試過...

  • 在我的www / index.html中包括<script src="cordova.js"></script>
  • 確保<plugin name="phonegap-plugin-push" ...位於我的config.xml文件中
  • if (typeof PushNotification === 'undefined') { alert("No PushNotification"); } if (typeof PushNotification === 'undefined') { alert("No PushNotification"); }到我應用的JavaScript。 在瀏覽器中進行本地測試(顯然未找到cordova文件)以及在Android設備上通過PhoneGap應用進行測試時,這似乎總是會觸發。
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
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM