2015-01-17 24 views
10

Tôi có ứng dụng nhắn tin được tạo bằng cách sử dụng khung Ionic (trên cordova). Tôi dự định xây dựng ứng dụng này cho android và tôi muốn có cách gửi và nhận thông báo đẩy từ ứng dụng bằng javascript/ionic.Làm cách nào để gửi/nhận thông báo đẩy từ ứng dụng di động ionic?

Có hướng dẫn nào tốt về cách thiết lập nội dung như thế này không?

+0

nếu bạn muốn, bạn có thể tham khảo các bài viết trên blog mới nhất từ ​​devgirl , http://devgirl.org/2014/12/16/push-notifications-sample-app-with-ionic-and-ngcordova/ –

Trả lời

11

example application được cung cấp bởi Holly Schinsky. Cốt lõi của nó là việc sử dụng PushPlugin đó là phương pháp tiêu chuẩn để xử lý các thông báo đẩy trên Cordova. Có hướng dẫn khá rộng rãi được cung cấp cho chủ đề này trên tài liệu của họ trên kho lưu trữ GitHub đó. Phương pháp chính là pushNotification.register để đăng ký thiết bị để nghe thông báo đẩy.

Thay vào đó, nếu bạn cần kích hoạt thông báo cục bộ, bạn có thể muốn xem Local notification plugin. Với nó, bạn có thể thêm thông báo được hiển thị trên thiết bị mà không cần các dịch vụ bên ngoài để gửi các thông báo đẩy.

4

Sử dụng plugin này https://github.com/phonegap-build/PushPlugin.

Thiết bị Android nhận thông báo đẩy thông qua dịch vụ Google Cloud Messaging (GCM), trong khi thiết bị iOS nhận chúng từ Dịch vụ thông báo đẩy của Apple (APN).

Cách nhận được thông báo (bằng âm thanh, cảnh báo, v.v.) là sự kết hợp của các tùy chọn được đặt trong mã ứng dụng khi đăng ký cũng như cài đặt thiết bị của người dùng cho thông báo.

Nếu bạn muốn theo cụ thể hơn dưới đây hướng dẫn:

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

2

Phonegap-plugin-push mới nhất cho phép bạn đăng ký và nhận thông báo đẩy trong ứng dụng ionic của bạn. Nó được duy trì tại liên kết Github sau:

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

Cài đặt:

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

Trường hợp XXXXXXX trong SENDER_ID="XXXXXXX" bản đồ với số dự án trong Google Developer Console. Để tìm số đăng nhập dự án vào Bảng điều khiển dành cho nhà phát triển của Google, hãy chọn dự án của bạn và nhấp vào mục menu trong ảnh chụp màn hình bên dưới để hiển thị số dự án của bạn.

zzns8

Nếu bạn không tạo ra một ứng dụng Android, bạn có thể đưa vào bất cứ điều gì cho giá trị này.

Lưu ý: Bạn có thể cần chỉ định biến SENDER_ID trong package.json của mình.

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

Lưu ý: Bạn cần phải xác định biến SENDER_ID trong cấu hình của bạn.xml nếu bạn định cài đặt/khôi phục các plugin bằng phương pháp chuẩn bị. Phương thức chuẩn bị sẽ bỏ qua việc cài đặt plugin nếu không.

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

Sau khi cài đặt, bây giờ bạn có thể thêm mã dưới đây để tập tin của bạn chính javascript để đăng ký và nhận được thông báo đẩy:

$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); 
      }); 
      } 
     }); 
     } 
    } 
+0

Làm thế nào tiêm này, bởi vì tôi cố gắng nhưng chỉ cho tôi một lỗi, như '.init là không được xác định ' –

+0

@Pedro Miguel Pimienta Morales là bạn nhận được lỗi '.init không được xác định' trên trình duyệt hoặc trên thiết bị. Plugin sẽ chỉ hoạt động trên thiết bị. Để ngừng nhận lỗi trên trình duyệt, bạn có thể kết thúc cuộc gọi trong điều kiện 'if (window.cordova) {}'. –

+0

đó là "bộ định vị" cần thiết: "phonegap-plugin-push" –

Các vấn đề liên quan