2017-02-19 4 views
-1

Какой код я пишу для запуска уведомления о наборе часов с самого приложения часов? Например, если я подключу кнопку из раскадровки часов к моему WatchInterfaceController в качестве действия, то при нажатии она вызывает уведомление на часах.Как вызвать WK-уведомление

ответ

0

Для проверки уведомлений о часах вы должны сначала создать новую схему сборки.

Дублируйте схему приложения часов, а в разделе «Выполнить» выберите свое пользовательское уведомление в качестве исполняемого файла.

Теперь вы можете запустить схему уведомления.

Внутри группы расширений в вашем проекте под поддержкой файлов находится файл PushNotificationPayload.json.

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

+0

Спасибо за ваш ответ, но с точки зрения вызова уведомления в нормальных условиях (на реальном устройстве, не связанный с Xcode), что код, который я должен использовать для это должно быть вызвано? –

+0

Это невозможно. Вы должны использовать поставщика удаленных уведомлений, таких как Pusher (что довольно просто реализовать). Поэтому, когда вы идете на свой веб-интерфейс и отправляете уведомление Push, оно появится на всех «подписанных» устройствах. Но это невозможно запустить с помощью кнопки или чего-то подобного. –

0

Для запуска уведомления, в первую очередь вам нужно разрешение: (объявившего обычно в ExtensionDelegate)

func askPermission() { 

    UNUserNotificationCenter.current().requestAuthorization(options: [.badge, .alert,.sound]) { (authBool, error) in 
     if authBool { 
      let okAction = UNNotificationAction(identifier: "ok", title: "Ok", options: []) 
      let category = UNNotificationCategory(identifier: "exampleCategoryIdentifier", actions: [okAction], intentIdentifiers: [], options: []) 

      UNUserNotificationCenter.current().setNotificationCategories([category]) 
      UNUserNotificationCenter.current().delegate = self 
     } 
    } 
} 

За то, что эту работу, вам нужно импортировать (в ExtensionDelegate) «UserNotifications» и продлить :

UNUserNotificationCenterDelegate

После того, как вы сделали это, вы можете позвонить askPermission где вы хотите, таким образом:

if let delegate = WKExtension.shared().delegate as? ExtensionDelegate { 
     delegate.askPermission() 
    } 

Теперь у вас есть (надеюсь) разрешение на запуск уведомления! Для запуска уведомления, вы можете использовать функцию следующим образом:

func notification() { 

    let content = UNMutableNotificationContent() 
    content.body = "Body Of The Notification" 
    content.categoryIdentifier = "exampleCategoryIdentifier" // Re-Use the same identifier of the previous category. 
    content.sound = UNNotificationSound.default() // This is optional 

    let request = UNNotificationRequest(identifier: NSUUID().uuidString, 
             content: content, 
             trigger: nil) 
    let center = UNUserNotificationCenter.current() 

    center.add(request) { (error) in 
     if error != nil { 
      print(error!) 
     } else { 
      print("notification: ok") 
     } 
    } 
} 
+0

Спасибо! Пожалуйста, подумайте о том, чтобы «взглянуть» (lol) на мои оставшиеся без ответа вопросы. Вы можете помочь мне! –

Смежные вопросы