2011-06-21 43 views
7

Tôi đã phát triển ứng dụng phía máy chủ để duy trì số huy hiệu như tăng hoặc giảm sau khi nhận được thông báo mới và xóa sau khi thấy thông báo hoạt động tốt.Số huy hiệu thông báo đẩy của Apple

Nhưng có một số vấn đề trong việc hiển thị huy hiệu, kịch bản thực tế là - Sau khi nhận được thông báo mới trên thiết bị, tôi nhấp vào nút hủy rồi số hiệu hiển thị chính xác nhưng sau đó tôi sẽ mở ứng dụng và đóng huy hiệu ứng dụng sẽ được gỡ bỏ. Điều đó có nghĩa là tôi không gửi yêu cầu tới máy chủ mà thông báo đã được tôi nhìn thấy và giờ đây bạn có thể giảm huy hiệu một lần. Sau đó, huy hiệu cũng bị xóa khỏi biểu tượng ứng dụng.

Câu hỏi của tôi là khi chúng tôi mở ứng dụng thì số huy hiệu sẽ tự động bị xóa khỏi thiết bị (ứng dụng)? hoặc nó sẽ hiển thị như nó là cho đến khi chúng tôi thiết lập để không?

Trả lời

12

Nó sẽ hiển thị cho đến khi bạn đặt nó là zero và bạn có thể làm điều đó với đoạn mã sau:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0] 


EDIT:
Nó là phổ biến hơn để thiết lập số huy hiệu khi bạn nhận được thông báo , theo phương thức application:didReceiveRemoteNotification: hoặc application:didFinishLaunchingWithOptions: trong lớp UIApplicationDelegate của bạn.

Bạn có thể đọc thêm về nó trong Local and Push Notification Programming Guide

0

Nếu bạn muốn thay đổi biểu tượng biểu tượng tự động sử dụng đoạn mã sau.

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

    application.applicationIconBadgeNumber = 0; 
    NSLog(@"userInfo %@",userInfo); 

    for (id key in userInfo) { 
     NSLog(@"key: %@, value: %@", key, [userInfo objectForKey:key]); 
    } 

    [application setApplicationIconBadgeNumber:[[[userInfo objectForKey:@"aps"] objectForKey:@"badge"] intValue]]; 

    NSLog(@"Badge %d",[[[userInfo objectForKey:@"aps"] objectForKey:@"badge"] intValue]); 

} 

Chúng tôi cũng cần thay đổi tệp php. Vì vậy, chúng tôi có thể tự động thay đổi huy hiệu biểu tượng

// Create the payload body 
$body['aps'] = array(
    'alert' => $message, 
    'sound' => 'default', 
    'id' => '135', 
    'badge' => 8 
    ); 
Các vấn đề liên quan