2014-12-12 14 views
8

Khi nhận được thông báo đẩy và ứng dụng của tôi bị đóng hoàn toàn, cách xử lý thông tin này?nhận dữ liệu từ thông báo đẩy khi ứng dụng bị đóng trong iOS và ứng dụng không chạy ở chế độ nền

Chỉ có thể lấy dữ liệu từ NSDictionary trên phương pháp này didFinishLaunchingWithOptions: hoặc

didReceiveRemoteNotification:

ví dụ: khi người dùng mở ứng dụng như thế nào lấy dữ liệu từ các thông báo đẩy ?, và không phải khi người dùng mở thông báo đẩy trực tiếp.

Có phương pháp phản hồi và phát hiện xem thông báo chưa được đọc không?

Trả lời

15

Bạn sẽ muốn thực hiện

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))handler 

này sẽ khởi chạy ứng dụng của bạn nếu cần thiết, sau đó bạn sẽ muốn lưu dữ liệu ở đâu đó để khi người dùng tiếp theo là bắt đầu ứng dụng bạn lấy các dữ liệu và làm điều gì đó với nó.

From Apples Doc's:

Thảo luận

Sử dụng phương pháp này để xử lý các thông báo từ xa đến cho ứng dụng của bạn. Không giống như ứng dụng: didReceiveRemoteNotification: phương thức, là chỉ được gọi khi ứng dụng của bạn đang chạy ở nền trước, hệ thống gọi phương thức này khi ứng dụng của bạn đang chạy ở nền trước hoặc . Ngoài ra, nếu bạn bật thông báo từ xa chế độ nền, hệ thống sẽ khởi chạy ứng dụng của bạn (hoặc đánh thức ứng dụng từ trạng thái tạm dừng ) và đặt nó ở trạng thái nền khi thông báo đẩy đến . Tuy nhiên, hệ thống không tự động khởi chạy ứng dụng của bạn nếu người dùng đã loại bỏ nó. Trong trường hợp đó, người dùng phải khởi chạy lại ứng dụng của bạn hoặc khởi động lại thiết bị trước khi hệ thống cố gắng tự động khởi chạy lại ứng dụng của bạn.

Chỉ cần nhìn vào phương pháp này và tôi chắc chắn bạn sẽ hình dung nó ra :)

Tôi đã làm một google nhanh chóng, những trông giống như họ sẽ giúp:

SO dụ: ​​didReceiveRemoteNotification: fetchCompletionHandler: open from icon vs push notification

Hướng dẫn đầu tiên tôi thấy trên đó: http://hayageek.com/ios-background-fetch/

+2

Tôi có câu hỏi nhanh. Nếu tôi đóng ứng dụng từ màn hình đa nhiệm thì tôi vẫn có thể nhận được thông báo? Vì cuối cùng, có vẻ như tôi không thể nhận được thông báo khi tôi đóng ứng dụng. – Rhenz

+1

@BooRanger Cảm ơn bạn rất nhiều vì câu trả lời của bạn !!!!! Yêu bạn (Không thích hợp) – hyd00

+1

@BooRanger cảm ơn, rất nhiều tôi đã dành thời gian looooooooong tìm kiếm điều này – Shehabix

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