簡體   English   中英

如何從離子移動應用程序發送/接收推送通知?

[英]How to send/receive push notifications from ionic mobile app?

我有一個使用 Ionic 框架(在cordova 上)構建的消息傳遞應用程序。 我計划為 android 構建這個,我想要一種使用 javascript/ionic 從應用程序發送和接收推送通知的方法。

有沒有關於如何設置這樣的東西的好教程?

Holly Schinsky 提供了示例應用程序 它的核心是使用PushPlugin ,這是在 Cordova 上處理推送通知的標准方法。 在該 GitHub 存儲庫的文檔中為該主題提供了相當廣泛的教程。 主要方法是pushNotification.register ,它注冊設備以偵聽推送通知。

如果您需要在本地觸發通知,則可能需要查看 本地通知插件 有了它,您可以添加要在設備上顯示的通知,而無需外部服務來發送推送通知。

使用這個插件https://github.com/phonegap-build/PushPlugin

Android 設備通過 Google Cloud Messaging (GCM) 服務接收推送通知,而 iOS 設備通過 Apple Push Notifications (APN) 服務接收推送通知。

接收通知的方式(通過聲音、警報等)是注冊時應用程序代碼中設置的選項以及用戶設備通知設置的組合。

如果你想要更具體的遵循以下教程:

http://devgirl.org/2013/07/17/tutorial-implement-push-notifications-in-your-phonegap-application/

ngCordova 有一個支持推送通知的插件。 它有適用於 iOS 和 Android 的示例代碼。 檢查一下: http : //ngcordova.com/docs/plugins/pushNotifications/

最新的 phonegap-plugin-push 允許您在您的 ionic 應用程序中注冊和接收推送通知。 它在以下 Github 鏈接中維護:

https://github.com/phonegap/phonegap-plugin-push

安裝:

cordova plugin add https://github.com/phonegap/phonegap-plugin-push --variable SENDER_ID="XXXXXXX"

XXXXXXXSENDER_ID="XXXXXXX"映射到該項目編號谷歌開發者控制台 要查找項目編號,請登錄 Google Developer Console,選擇您的項目並單擊下面屏幕截圖中的菜單項以顯示您的項目編號。

zzns8

如果您不是在創建 Android 應用程序,則可以為此值輸入任何內容。

注意:您可能需要在 package.json 中指定 SENDER_ID 變量。

"cordovaPlugins": [
    {
      "variables": {
        "SENDER_ID": "XXXXXXX"
      },
      "locator": "phonegap-plugin-push"
    }
  ]

注意:如果您計划使用准備方法安裝/恢復插件,則需要在 config.xml 中指定 SENDER_ID 變量。 否則,prepare 方法將跳過安裝插件。

<plugin name="phonegap-plugin-push" spec="1.6.0">
    <param name="SENDER_ID" value="XXXXXXX" />
</plugin>

安裝后,您現在可以將下面的代碼添加到您的主要 javascript 文件中以注冊和接收推送通知:

    $ionicPlatform.ready(function () {

         var push = PushNotification.init({
           android: {
             senderID: "XXXXXXX"//, //project token number (12 digit) from https://console.developers.google.com
             // forceShow: "true", //force show push notification when app is in foreground on Android only.
           },
           browser: {
             pushServiceURL: 'http://push.api.phonegap.com/v1/push'
           },
           ios: {
             /*senderID: "XXXXXXX",*/ //If using GCM for ios, project token number (12 digit) from https://console.developers.google.com
             /*gcmSandbox: 'true',*/ //If using GCM for ios
             alert: 'true',
             badge: 'true',
             sound: 'true',
           },
           windows: {}
         });

         PushNotification.hasPermission(function (permissionResult) {
           if (permissionResult.isEnabled) {
             $log.debug("has permission for push notification");

             /*Register device with GCM/APNs*/
             push.on('registration', function (data) {
               // data.registrationId
               $log.debug("data.registrationId: " + data.registrationId);          
             });

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

             push.on('error', function (e) {
               // e.message
               $log.debug("e.message: " + e.message);
               //alert(e.message);
             });
           }
         });
       }
     }

暫無
暫無

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

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