2015-04-02 23 views
11

Chúng tôi có thể có thông báo địa phương im lặng trong ứng dụng IOS không. Mà một số xử lý dữ liệu trong nền với ra người dùng tương tác với nó.Thông báo địa phương im lặng IOS

Điều tôi muốn làm là tạo thông báo im lặng địa phương sẽ kích hoạt sau 8 giờ sáng và sau khi người dùng nhận được, tôi muốn thực hiện xử lý dữ liệu và tạo lại dữ liệu mới mà người dùng có thể xem được xử lý sau khi tôi thấy thông báo địa phương im lặng đầu tiên.

Tôi đang cố gắng tránh sử dụng thông báo đẩy nhiều nhất có thể.

+1

Khi thông báo cục bộ được kích hoạt, bạn sẽ không nhận được bất kỳ quyền kiểm soát ứng dụng nào. Nó chỉ là một cái gì đó được hiển thị trực quan cho người dùng. –

+1

Thêm vào ở trên, chỉ các thông báo từ xa (push) mới cho phép bạn thực hiện những gì bạn muốn làm. – Ollie

+0

Các thông báo địa phương và đẩy đều hoạt động theo cùng một cách theo nghĩa đó. họ không làm bất cứ điều gì trừ khi bạn mở chúng. – Kex

Trả lời

4

Bạn có thể nhận thông báo im lặng trong nền trên iOS, nhưng bạn sẽ cần một máy chủ để thực sự gửi thông báo.

Để thực hiện điều này, bạn kích hoạt chế độ Remote notifications nền trong tab Capabilities của mục tiêu của bạn:

Screenshot of Background Modes settings

Sau đó, bạn đăng ký thông báo đẩy trong application:didFinishLaunchingWithOptions: với

UIUserNotificationSettings* notificationSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeNone categories:nil]; 
[[UIApplication sharedApplication] registerUserNotificationSettings:notificationSettings]; 

Trong khi chờ người sử dụng cho phép ứng dụng của bạn để gửi thông báo đẩy, bạn sẽ nhận được mã thông báo thiết bị:

-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken; 

Nếu họ gặp khó khăn, xử lý thất bại sẽ được gọi là:

- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError: 

Bạn gửi deviceToken máy chủ của bạn và nói với nó để gửi một thông báo push im lặng để deviceToken rằng tại thời điểm địa phương của thiết bị của 08:00.

Đó thiết bị sẽ có phương pháp ứng dụng đại biểu sau đây gọi là:

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

và bạn sẽ có thể để làm xử lý dữ liệu của bạn.

Dễ dàng!

Đừng quên gọi trình xử lý hoàn tất khi bạn hoàn tất!

+0

Khi bạn nói một máy chủ. Nó là một chương trình không IOS gửi thông báo đến một thiết bị đúng như nhiệm vụ theo lịch trình hoặc một số loại? Hoặc tôi có thể làm mọi thứ với ứng dụng IOS của mình, –

+1

Đây là một chương trình không phải iOS, ví dụ: chạy như một công việc cron trên EC2 hoặc một cái gì đó tương tự. –

+1

Vì vậy, bạn đang sử dụng thông báo từ xa. Nhưng tôi đang cố gắng thoát khỏi thông báo từ xa và câu hỏi của tôi là về thông báo địa phương. –

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