Реализовали ли вы UserNotification ?Если вы развернете свой проект на iOS 10+, вы можете попытаться подписать уведомление на FinishedLaunching(UIApplication application, NSDictionary launchOptions)
, например:
if (UIDevice.CurrentDevice.CheckSystemVersion(10, 0))
{
var authOptions = UNAuthorizationOptions.Alert | UNAuthorizationOptions.Badge | UNAuthorizationOptions.Sound;
UNUserNotificationCenter.Current.RequestAuthorization(authOptions, (granted, error) => {
Console.WriteLine(granted);
});
UNUserNotificationCenter.Current.Delegate = new MyNotificationCenterDelegate();
}
Затем, когда уведомление придет и приложение будет на переднем плане, WillPresentNotification()
будетогонь, это событие дескриптора возвращает, какое действие будет реагировать это приложение, когда приходит уведомление.Наконец, вы можете получить userInfo в событии DidReceiveNotificationResponse()
:
public class MyNotificationCenterDelegate : UNUserNotificationCenterDelegate
{
public override void DidReceiveNotificationResponse(UNUserNotificationCenter center, UNNotificationResponse response, Action completionHandler)
{
completionHandler();
}
public override void WillPresentNotification(UNUserNotificationCenter center, UNNotification notification, Action<UNNotificationPresentationOptions> completionHandler)
{
completionHandler(UNNotificationPresentationOptions.Sound | UNNotificationPresentationOptions.Alert);
}
}
Но если вы не хотите внедрять UserNotification
или вы просто отправляете тихое удаленное уведомление с помощью клавиши content-available
truedidReceiveRemoteNotification()
также будет запущен, даже если приложение находится на переднем плане.