当app是前景时,为什么会显示推送通知?(iOS10/iPhone 7)

Bri*_*Lee 0 ios ios10

我有奇怪的经历.当app是前景时,为什么会显示推送通知(在原生横幅中)?它仅在iPhone 7(iOS10.1.1)上重现.

我测试了其他iPhone,如iPhone 5和iPhone 6s,具有相同的应用程序,相同的iOS版本.当应用程序正常处于前台时,它不会显示.

推送横幅仅出现在iPhone 7上.

这是正常的吗?

我的应用程序由Xamarin.forms创建.(目前,Xamarin将c#代码转换为目标C,因此它基本上是客观的c)

谢谢.

jka*_*ten 6

从iOS 10开始,开发人员可以控制应用程序聚焦时如何显示通知.这是通过设置a来完成的UNUserNotificationCenterDelegate.

userNotificationCenter:willPresentNotification:withCompletionHandler:会在此委托在那里被解雇UNNotificationPresentationOptions,可以传递给completionHandler以确定是否应通知其声音和徽章值更新一起显示.

根据您的问题,听起来您正在使用SDK或框架来添加通知.您仍然可以使用UNUserNotificationCenterDelegate大多数通知SDK.

请注意,在iOS 9及更早版本的设备上,此代理不可用,并且当您的应用处于焦点时收到通知时,通知将不会显示在通知中心.相反,您必须仍然必须使用UIApplicationDelegate旧版本的iOS并为它们显示应用内消息.


Wol*_*ine 5

如果应用程序升级到iOS10,并且其应用程序的开发人员使用了UserNotifications框架.那么当应用程序处于前台时,有一些功能可以将通知显示为本机横幅.

UNNotificationPresentationOptions标志允许您指定UNNotificationPresentationOptionAlert显示使用通知中的文本警报.

如果您使用iOS10,它的效果会相同,而且app与UserNotifications框架兼容.

正如您所提到的,您已使用相同版本的其他设备测试了该应用程序,然后可能是这些设备上未安装其应用程序的最新版本.

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