Справочная информация:
Я реализовал UNNotificationContentExtension
, чтобы можно было отформатировать полученные данные APNS и отобразить их в соответствии с моими потребностями, как показано ниже
![enter image description here](https://i.stack.imgur.com/eVJSp.jpg)
Я бы хотел, чтобы пользователь нажимал на звезды и оценивал их, поэтому я включил взаимодействие с пользователем на UNNotificationContentExtension
, используя
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>UNNotificationExtensionCategory</key>
<string>test</string>
<key>UNNotificationExtensionDefaultContentHidden</key>
<true/>
<key>UNNotificationExtensionInitialContentSizeRatio</key>
<real>1</real>
<key>UNNotificationExtensionOverridesDefaultTitle</key>
<false/>
<key>UNNotificationExtensionUserInteractionEnabled</key>
<true/>
</dict>
<key>NSExtensionMainStoryboard</key>
<string>MainInterface</string>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.usernotifications.content-extension</string>
</dict>
В чем проблема?
Теперь пользователь может нажимать на звезды и оценивать их, но поскольку взаимодействие с пользователем включено, независимо от того, где пользователь находится в представлении уведомлений, уведомление не отклоняется и не передает данные родительскому приложению. Поэтому didReceiveRemoteNotification
не вызывается независимо от того, сколько раз пользователь нажимает на пользовательский интерфейс.
Чего я хочу достичь?
Мне бы хотелось, чтобы обычный поток уведомлений iOS включал и передавал полезную нагрузку уведомлений родительскому приложению iOS, когда пользователь нажимает на любую звездочку или в любом месте пользовательского интерфейса. Если пользователь нажмет на звезду, я буду распространять рейтинг, в противном случае будет пройдено 0.
Как я могу отклонить уведомление и вызвать родительское приложение didReceiveRemoteNotification
или didFinishLaunchingWithOptions
, когда пользователь нажимает на пользовательский интерфейс, когда UNNotificationExtensionUserInteractionEnabled
имеет значение true?