Обновить заголовок быстрого действия 3D Touch

#ios #swift #xcode #3dtouch

#iOS #swift #xcode #3dtouch

Вопрос:

Я хочу показать дату в элементе быстрого действия 3D Touch. Есть ли какой-либо способ обновить данные, если пользователь не открывал приложение?

Прямо сейчас в быстром действии будет отображаться только дата последнего открытия приложения, а не текущая дата.

Возможно ли отображать текущую информацию или это какой-то фоновый процесс, который не разрешен?

AppDelegate:

 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    let dateVariable = Date()
    let dateFormatter = DateFormatter()
    dateFormatter.dateStyle = .short
    let dateString = dateFormatter.string(from: dateVariable)

    let shortcut4 = UIMutableApplicationShortcutItem(type: "GetDate",
                                                     localizedTitle: dateString,
                                                     localizedSubtitle: "Get Today's Date in subtitle",
                                                     icon: UIApplicationShortcutIcon(type: .date),
                                                     userInfo: nil)

    application.shortcutItems = [shortcut4]
    return true
}
  

Ответ №1:

Вы можете обновить элементы быстрого доступа в фоновом режиме. Но без какой-либо надлежащей причины вы не можете включить фоновый режим для приложения. Apple отклонит приложение в процессе проверки.

Обновить:

Я думаю, что обновить элемент быстрого доступа в фоновом режиме сложнее. В iOS 10 Apple показывает виджет «Сегодня» во время нажатия кнопки (элементы быстрого доступа 3D). Вы можете использовать виджет «Сегодня» для обновления последней информации всякий раз, когда пользователь нажимает ForceTouch. Я надеюсь, что это будет полезно

Комментарии:

1. Как бы вы обновили элементы быстрого доступа в фоновом режиме?

2. Я думаю, что обновить элемент быстрого доступа в фоновом режиме сложнее. В iOS 10 Apple показывает виджет «Сегодня» во время нажатия кнопки (элементы быстрого доступа 3D). Вы можете использовать виджет «Сегодня» для обновления последней информации всякий раз, когда пользователь выполняет ForceTouch. Я надеюсь, что это будет полезно.

3. Как именно я могу использовать виджет для обновления элементов 3d touch? Из приложения они доступны, через UIApplication.shared.shortcutItems которые вы не можете перейти из виджета.