当我发送推送通知时,我收到设备上的通知,但它没有在iPhone的锁定屏幕或通知中心显示为横幅。我在iPhone上安装了iOS 9。
以下是我的代码。
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
{
registerForPushNotifications(application)
return true
}
func registerForPushNotifications(application: UIApplication)
{
let settings = UIUserNotificationSettings(forTypes: [.Sound, .Alert, .Badge], categories: nil)
UIApplication.sharedApplication().registerUserNotificationSettings(settings)
UIApplication.sharedApplication().registerForRemoteNotifications()
}
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData)
{
print("DEVICE TOKEN = \(deviceToken)")
let tokenChars = UnsafePointer<CChar>(deviceToken.bytes)
var tokenString = ""
for i in 0..<deviceToken.length
{
tokenString += String(format: "%02.2hhx", arguments: [tokenChars[i]])
}
print("tokenString: \(tokenString)")
strDeviceToken = tokenString
}
func application(application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError)
{
print("Error = \(error)")
}
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]){
print(userInfo)
}
答案 0 :(得分:2)
最后我解决了这个问题。他们在PHP代码上的问题不在iOS代码中。在PHP代码中,他们缺少警告 aps 数组中的关键字,说明设备仅在接收通知时振动的原因。
答案 1 :(得分:0)
确保您的应用处于后台或已关闭,否则推送通知消息将无法在屏幕上显示。当应用程序在前台运行时,iOS直接将推送通知消息传递给主机应用程序,而不在主屏幕或通知屏幕上显示。
当您的应用程序位于最前端时,UIKit会提供本地和远程服务 直接通知您的app委托对象而不显示 任何系统UI。 UIKit打电话给 application:didReceiveLocalNotification:传入本地的方法 通知和 应用:didReceiveRemoteNotification:fetchCompletionHandler: 传入远程通知的方法。使用提供的 通知字典相应地更新您的应用程序。因为你的 应用程序正在运行,您可以安静地合并通知数据或 更新您的用户界面,让用户知道这些新信息 是可用的。