5

Tôi đang cố gắng gửi thông báo đẩy tới ứng dụng iOS của mình bằng GCM. Các ứng dụng không nhận được thông báo khi nó ở chế độ nền nhưng nó hoạt động khi nó ở nền trước. Tôi đã thử nghiệm các thông báo đẩy với một kịch bản PHP cũng gửi thông điệp trực tiếp đến APNS và nó hoạt động ở chế độ nền.Thông báo đẩy GCM khi ứng dụng iOS ở chế độ nền

Các JSON gửi đến GCM: (tôi gửi nó từ một khách hàng còn lại để thử nghiệm)

{ 
    "to" : "token...", 
    "notification" : { 
    "title": "GCM TITLE", 
    "body" : "FROM GCM", 
    "badge": "1", 
    "sound": "default" 
    } 
} 

Không làm việc: Các UserInfo nhận được từ GCM trong didReceiveRemoteNotification:

Notification received: [aps: { 
    alert =  { 
     body = "FROM GCM"; 
     title = "GCM TILE"; 
    }; 
    badge = 1; 
    sound = default; 
}, gcm.message_id: 123...] 

Làm việc: UserInfo đã nhận khi được gửi từ tập lệnh PHP (Tôi cũng đã thêm message_id vào JSON để xem đó có phải là vấn đề)

Notification received: [aps: { 
    alert =  { 
     body = "FROM PHP"; 
     title = "PHP TITLE"; 
    }; 
    badge = 2; 
    sound = default; 
}, gcm.message_id: 123...] 

Tôi đã thử thêm content_available với JSON với kết hợp khác nhau nhưng không hiệu quả, các Content-Type và Authorization tiêu đề yêu cầu cũng được thiết lập:

Content-Type:application/json 
Authorization:key=... 
+0

có thể hoặc có thể không làm việc, tôi đã có một vấn đề tương tự, hãy thử loại bỏ các tiêu đề từ JSON – Rob85

+0

nhờ cho lời khuyên! thật không may, nó vẫn không hoạt động – barna941

+0

để bạn có được thành công từ GCM? bạn đang thử nghiệm môi trường nào, bạn đã lưu trữ ứng dụng hoặc thử nghiệm trực tiếp vào thiết bị chưa? – Rob85

Trả lời

8

Trong trường hợp nếu ai đó có cùng một vấn đề, giải pháp là để tôi thêm "ưu tiên": "cao" vào JSON. Bằng cách này tôi nhận được các thông báo trong nền.

{ 
    "to" : "token...", 
    "priority": "high", 
    "notification" : { 
    "title": "GCM TITLE", 
    "body" : "FROM GCM", 
    "badge": "1", 
    "sound": "default" 
    } 
} 
0

Để nhận được thông báo khi ứng dụng là trong nền i lưu ý rằng chúng ta cần thêm:

"content_available":true // when app in background 
"priority":"high" //when app is completely closed not even running in background 

// "content_available":true ..most important field 

{ 
"to" : "token...", 
"priority":"high", 
"content_available":true, 
"notification" : { 
"title": "GCM TITLE", 
"body" : "FROM GCM", 
"badge": "1", 
"sound": "default" 
    } 
} 
Các vấn đề liên quan