2016-09-27 12 views
7

Tôi đang làm việc trên ứng dụng nhận được thông báo và đặt huy hiệu ứng dụng.
Vấn đề là khi ứng dụng ở trạng thái nền hoặc bị chấm dứt, số lượng huy hiệu không tăng.
Nó vẫn giữ nguyên.Tăng số lượng Huy hiệu từ phía Khách hàng không phải từ Tải trọng Nhận số

Trong khi ứng dụng ở các cuộc gọi phương thức tiền cảnh và số lượng huy hiệu tăng lên.
Tôi đã làm điều đó từ phía máy chủ,

nhưng tôi muốn biết rằng Có phương pháp nào thực thi khi ứng dụng ở chế độ nền hoặc chấm dứt để tăng số huy hiệu ứng dụng không?

Tôi đã nói với bạn tôi đã làm điều này như

{ 
    "aps" : { 
     "alert" : "You got your emails.", 
     "badge" : 9 
    } 
} 

từ phía máy chủ nhưng những gì tôi muốn là: Tôi không muốn nhận rằng số huy hiệu từ máy chủ tải trọng nhưng tôi muốn tăng huy hiệu đếm từ phía tôi.

Logic của tôi giống như khi tôi nhận được thông báo đầu tiên tôi đã lưu trong userdeafualts trong didReceiveNotification và khi tôi thông báo lần thứ hai tôi đã thêm với +1 và khi ứng dụng ở tiền cảnh tôi trực tiếp thay đổi huy hiệu đó là 0 trong userdefaults NHƯNG NÀY PHƯƠNG PHÁP CANT lÀM VIỆC TẠI BỐI CẢNH HOẶC APP chấm dứt

vì vậy tôi muốn biết nếu có bất kỳ phương pháp mà thực hiện ở chế độ nền HOẶC APP bị chấm dứt SO tÔI CÓ THỂ TĂNG HIỆU COUNT địa chỉ

Nếu có ai biết xin vui lòng giúp tôi làm nó từ phía tôi.

+0

Bài viết này có thể hữu ích cho bạn: http://stackoverflow.com/a/14256852/3426053 – boraseoksoon

+0

Dường như tôi phải tính toán ở phía máy chủ và nhận số lượng từ tải trọng và đặt làm số hiệu huy hiệu ứng dụng. nhưng vấn đề của tôi tôi không muốn đếm từ phía máy chủ. Tôi đã đề cập rằng điều này được thực hiện từ phía máy chủ –

+2

Điều tốt nhất bạn có thể làm là đặt 'nội dung có sẵn: 1' trong từ điển' aps' và cầu nguyện. Không có cách nào đảm bảo để kích hoạt thực thi nền (cho dù ứng dụng đang chạy hay không), ngoại trừ Push Kit, được giới hạn trong các ứng dụng VoIP. – Avi

Trả lời

1

Nếu bạn sẽ kiểm tra trong tệp AppDelegate.m, có một phương pháp bạn có thể sử dụng để biết liệu ứng dụng có ở chế độ nền hay không.

- (void)applicationDidEnterBackground:(UIApplication *)application 
+1

Xin lỗi để nói, nhưng phương pháp này chỉ được gọi một lần khi ứng dụng nhập vào nền. Tôi muốn một phương pháp gọi mọi lúc khi tôi nhận được thông báo. –

+0

bạn có thể sử dụng tính năng thông báo từ xa trong IOS, Kiểm tra liên kết này có thể giúp bạn: http://stackoverflow.com/questions/39719528/how-to-handle-ios-remote-notification-while-app-is- trong nền – objectiveCoder

+0

Tôi đã nói với bạn rằng tôi đã làm điều này từ phía máy chủ. Tôi muốn cập nhật số lượng huy hiệu của mình từ phía tôi. Vì vậy, khi tôi nhận được thông báo cuộc gọi phương thức duy nhất trong nền và cập nhật số lượng huy hiệu của tôi được lưu trữ trong userDefault. Không có vấn đề gì khi ứng dụng ở tiền cảnh –

2

Sử dụng application(_:didReceiveRemoteNotification:fetchCompletionHandler:) của UIApplicationDelegate. Hệ thống đánh thức ứng dụng của bạn, nếu bạn đã bật chế độ nền thông báo từ xa. Để biết thêm thông tin, hãy kiểm tra tài liệu cho phương thức này

1

Để nhận thông báo đẩy khi ứng dụng của bạn ở chế độ nền, bạn cần cập nhật Khả năng của Mục tiêu trong Xcode và thêm Chế độ nền ... Thông báo từ xa. Sau đó, bạn phải thêm khóa content-available vào trọng tải và đặt thành 1. Điều này sẽ kích hoạt application:didReceiveRemoteNotification:fetchCompletionHandler:. Xem tài liệu here.

Khi ứng dụng bị chấm dứt, bạn không thể làm gì cả.

+0

có thể 'voip' tiện dụng ngay cả khi ứng dụng chấm dứt? –

+0

Có lẽ. Nhưng không chắc chắn nếu táo sẽ chấp nhận PushKit sử dụng cho một ứng dụng không voip và nó là một tấn trên cao với giấy chứng nhận, vv – Joel

+0

Điều này có vẻ đúng! Bạn cần phải bật 'thông báo từ xa' từ' các chế độ nền' trong 'khả năng' !! – Lion

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