为什么推送通知显示应用程序是前景? (iOS10 / iPhone 7)

我有奇怪的经验。 为什么推送通知显示(在本机横幅)时,应用程序是前景? 它只能在iPhone 7(iOS10.1.1)上复制。

我在其他iPhone上testing了iPhone 5和iPhone 6s,使用相同的应用程序,相同的iOS版本。 正常情况下,应用在前台时不会显示。

推横幅只出现在iPhone 7上。

这是正常的吗?

我的应用程序由Xamarin.forms创build。 (现在,Xamarin将C#代码转换为目标C,所以它基本上是客观的C)

谢谢。

如果应用程序升级到iOS10,并且其应用程序的开发人员已经使用了UserNotifications框架,那么当应用程序处于前台时,通知可以作为本地横幅显示。

UNNotificationPresentationOptions标志允许您指定UNNotificationPresentationOptionAlert以使用通知提供的文本显示警报。

如果您使用的是iOS10,则效果相同,而且应用程序与UserNotifications框架兼容。

正如你所提到的,你已经testing了与其他设备相同的版本的应用程序,然后可能是他们的应用程序的最新版本没有安装在这些设备上。

它不仅仅基于iPhone7。 当iOS10安装在您的设备上,并且应用程序使用UserNotifications框架来处理通知时,这将起作用。

从iOS 10开始,开发人员可以控制应用程序的焦点时显示通知的方式。 这是通过设置UNUserNotificationCenterDelegate

userNotificationCenter:willPresentNotification:withCompletionHandler:将触发此UNNotificationPresentationOptions ,其中UNNotificationPresentationOptions可以传递给completionHandler以确定是否应该显示声音以及其声音和徽章值更新。

根据你的问题,这听起来像你使用SDK或框架来添加通知。 您仍然可以使用UNUserNotificationCenterDelegate以及大多数通知SDK。

请注意,在iOS 9和较旧的设备上,此代理不可用,并且在应用程序处于焦点时收到通知时,通知中心不会显示通知。 相反,你必须仍然使用旧版本的iOS的UIApplicationDelegate ,并显示一个在他们的应用程序消息。