为什么推送通知显示应用程序是前景? (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
,并显示一个在他们的应用程序消息。