Локальное уведомление iOS и событие календаря не отображаются, пока приложение не запущено - PullRequest
0 голосов
/ 19 декабря 2018

Мы хотели бы реализовать тихий push в нашем проекте, но столкнулись со странной проблемой!

Во-первых, есть демонстрационный проект, который отлично работает в моей программной среде, но после того, как я применил тот же код к своемуВ другом проекте локальное уведомление не появляется после получения тихого push-уведомления в AppDelegate (что-то волшебное), пока приложение отключено с помощью xcode / в фоновом режиме, и есть план B о календаре, но такой же, как указано выше, поэтому я понятия не имею,решить, любое предложение?

1.тихое push-уведомление и локальное уведомление демонстрационный проект

 * xcode 10.1, deployment target iOS 10.0

 * objective-c 
 * reference tutorial: https://medium.com/@mikru168/ios-%E6%9C%AC%E5%9C%B0%E9%80%9A%E7%9F%A5-local-notification-b25229f279ec

-------> работает шарм.Локальное уведомление появляется после получения тихого push-уведомления.

2.Мой проект + "1." (код выше)

* xcode 10.1, iOS 9.0
* objective-c mix swift 4.0

-------> отлично работает во время отладки (соединение с xcode), как в приложении, так и на переднем плане и в фоне.

-------> (отключить с помощью xcode) локальное уведомление не отображается, если приложение работает в фоновом режиме или завершено, но отлично работает на переднем плане.

3.Мой проект + событие календаря

-------> отлично работает во время отладки (соединяются с xcode), в то время как приложение находится на переднем плане и в фоне.

-------> (отключить с помощью xcode) уведомление о календаре не отображается, если приложение работает в фоновом режиме или прекращает работу, но отлично работает на переднем плане.

Ответы [ 2 ]

0 голосов
/ 24 декабря 2018

Я хотел бы поделиться с кем-то, кто застрял в этом, как я, вот устранение неполадок Apple, и это действительно полезно: https://developer.apple.com/library/archive/technotes/tn2265/_index.html

мое окончательное решение - это время срабатывания после 60 с.

0 голосов
/ 19 декабря 2018

Я попробовал с вашей демоверсией, и я только добавил несколько новых методов и кода.Это работает для меня, когда приложение отключено от XCode.

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

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

  1. Фоновые режимы> Удаленное уведомление
  2. Push-уведомление

enter image description here

enter image description here

Во-вторых, я добавил эти методы в didFinishLaunchingWithOptions

application.registerForRemoteNotifications()

Также добавлены следующие методы в классе appdelegate

func application(_ application: UIApplication,
                 didReceiveRemoteNotification userInfo: [AnyHashable : Any],
                 fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void)
{
     self.addLocalNotification()
    completionHandler(.newData)
}
func addLocalNotification(){
    let content = UNMutableNotificationContent()
    content.title = "title:Test"
    content.subtitle = "subtitle:No---"
    content.body = "body:Silent Notification"
    content.badge = 1
    content.sound = UNNotificationSound.default()

    // 設置通知的圖片
    let imageURL = Bundle.main.url(forResource: "apple", withExtension: "png")
    let attachment = try! UNNotificationAttachment(identifier: "", url: imageURL!, options: nil)
    content.attachments = [attachment]

    // 設置點擊通知後取得的資訊
    content.userInfo = ["link" : "https://www.facebook.com/franksIosApp/"]

    let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 1, repeats: false)

    let request = UNNotificationRequest(identifier: "notification", content: content, trigger: trigger)

    UNUserNotificationCenter.current().add(request, withCompletionHandler: {error in
        print("成功建立通知...")
    })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...