iOS как настроить будильник и график работы / уведомления - PullRequest
0 голосов
/ 30 ноября 2018

Привет, я новичок в iOS, в основном я разработчик Android.Но сейчас я работаю над iOS-приложением, это просто iOS-копия Android.Позвольте мне рассказать вам о том, что я хочу в приложении:

Наше приложение имеет сигнал тревоги, который будет напоминать нашему клиенту, что в конкретную дату у вас есть эта встреча.Например, если пользователь устанавливает будильник на 1 января 2019 года в 9:00 утра, то в этот день и время пользователь должен быть уведомлен об этом собрании.

Я много читал и обнаружил, что в iOS мы не можем этого сделать, поскольку, когда приложение находится в фоновом режиме, оно не может запускать собственный код?Итак, у меня есть 2 основных вопроса:

Что я хочу:

  1. Прежде всего, как запланировать будильник

  2. ЕслиТревога установлена, и приложение находится в фоновом режиме / завершено, тогда как генерировать уведомление, и когда пользователь нажимает на уведомление, переводит его в определенный вид?

  3. Если приложение находится в forground, то как перевести его в требуемый вид?также, если приложение находится на определенном представлении, как обновить само представление, когда срабатывает тревога?

Я знаю, что это 3 основные и основные части, которые требуют слишком много кодирования.Но я просто хочу направления.Дайте мне ссылку на куски кода.Я использую Xcode 9.2 и Swift 4.0.Заранее спасибо ...

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018
  1. Вы можете использовать локальные уведомления для получения уведомлений о тревоге.
  2. Вы можете обработать щелчок в методе делегата UNUserNotificationCenterDelegate и перейти на нужную страницу.

    func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) 
    
  3. Для отображения уведомлений, когда приложение находится на переднем плане, используйте этот метод от того же делегата

        func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)
    
0 голосов
/ 30 ноября 2018

Вам нужно запланировать локальное уведомление, которое теперь доступно в UNUserNotificationCenter.

Итак,

  1. Для локального планирования уведомлений из вашего приложения выполните следующие действия: doc .
  2. Для обработки уведомлений и связанных с ними действий выполните следующие действия: doc .

Для обработки уведомлений в AppDelegate или в том месте, где выхотите обработать UNUserNotificationCenter метод делегата, добавьте следующий код:

class AppDelegate:NSObject, UIApplicationDelegate, UNUserNotificationCenterDelegate{

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {


    let center = UNUserNotificationCenter.current()
    center.delegate = self // Don't forgot to set delegate

    //To get permissions from user:
    let options: UNAuthorizationOptions = [.alert, .sound, .badge];
    center.requestAuthorization(options: options) {
        (granted, error) in
        if !granted {
            print("Something went wrong")
        }
    }

    return true
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...