2013-08-23 28 views
5

Tôi muốn để số huy hiệu tăng tự động khi nhận thông báo đẩy, ví dụ: nếu tôi nhận được hai thông báo, hãy để số hiển thị dưới dạng 2, nếu tôi nhận được nhiều hơn, số tăng. Và tôi muốn để con số trả về số không khi tôi mở ứng dụng. Vì vậy, những gì tôi đang làm là như sau: mã trong ứng dụng đã kết thúc tung rasố hiệu tăng tự động khi nhận thông báo đẩy từ APNS

[UIApplication sharedApplication].applicationIconBadgeNumber = 0;

cách khác, các mã trong đã nhận khai báo từ xa là

application.applicationIconBadgeNumber = [[apsInfo objectForKey:@"badge"] integerValue];

Trong máy chủ, trong tệp php:

$payload = '{"aps": {"alert":"'.$message.'", "sound":"default","badge":"+1"}}'; 

Nhưng, thật không may, số không tăng lên, xin vui lòng sửa tôi nếu mã trên là sai, cảm ơn bạn mỗi trước.

Trả lời

3

Không có tùy chọn trong thông báo đẩy để tự động tăng số hiệu huy hiệu. Bạn sẽ phải chuyển số sẽ được hiển thị trên huy hiệu.

Ngoài ra, application:didReceiveRemoteNotification: sẽ chỉ được gọi nếu ứng dụng đang chạy nền trước. Ở đây bạn có thể tính toán số hiệu huy hiệu mới, nhưng điều này sẽ không giúp bạn nếu ứng dụng của bạn không có tiền cảnh.

Bạn cũng sẽ cần theo dõi phía máy chủ số huy hiệu.

+1

vâng tôi biết không có tùy chọn, đó là những gì tôi đang yêu cầu? làm thế nào tôi có thể làm điều đó, u có thể cho tôi biết làm thế nào tôi có thể theo dõi phía máy chủ số huy hiệu? vui lòng – Fatima

+0

Bạn sẽ phải thực hiện cuộc gọi API cho dịch vụ web của mình, ứng dụng có thể gọi. Làm thế nào để làm điều này là vào bạn và cách bạn đã thiết lập cơ sở dữ liệu của bạn. Ứng dụng của bạn sẽ cần thông báo cho bạn biết máy chủ nào đã đọc thư và bạn sẽ cần đếm số tin nhắn chưa đọc cho người dùng. – rckoenes

+1

@Fatima vì chúng tôi không có ý tưởng về cách bạn thiết lập cơ sở dữ liệu cũng như cách dữ liệu trong đó chúng tôi không thể giải quyết vấn đề cho bạn. Tôi có thể viết rất nhiều mã để bạn giải quyết vấn đề nhưng sau đó bạn sẽ hỏi tôi cách tích hợp nó với hệ thống của bạn. Ngoài ra chúng tôi đang ở đây để giúp đỡ nhưng không viết mã cho bạn. – rckoenes

1

bạn có thể làm một cái gì đó như sau

- (void)application:(UIApplication *)application didReceiveRemoteNotification: (NSDictionary *)userInfo { 

NSLog(@"userInfo:%@",userInfo); 

    badge_value+=[[[userInfo objectForKey:@"aps"] objectForKey:@"badge"]intValue];<br> 
    NSLog(@"Totoal badge Value:%d",badge_value);<br> 

for (id key in userInfo) { 
    NSLog(@"key: %@, value: %@", key, [userInfo objectForKey:key]); 
} 
[UIApplication sharedApplication].applicationIconBadgeNumber = badge_value;} 
+0

cảm ơn bạn, tôi sẽ dùng thử trước Thứ Hai, sau đó cung cấp cho bạn phản hồi. – Fatima

+0

Tôi nên đặt gì thay vì +1 trong truy vấn này: '$ payload = '{" aps ": {" alert ":"'. $ Message. '"," Sound ":" default "," badge ":" +1 "}} ';' – Fatima

+3

không cần tăng huy hiệu trong mã php.bạn cần tăng huy hiệu khi nhận được thông báo cũng như huy hiệu rõ ràng khi đọc. quản lý huy hiệu ở phía ios. – wasim

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