我创建了一个远程推送通知,通知效果很好,但声音和徽章不起作用。在我的服务器端代码中我有:
$messageBody['aps'] = array('alert' => $message, 'sound' => 'default','badge' => 2);
这是iOS代码:
func application(application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError) {
//print(error)
}
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
print(deviceToken)
}
func application(application: UIApplication, didReceiveRemoteNotificationuserInfo userInfo: [NSObject : AnyObject]) {
print(userInfo)
}
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
{
// Override point for customization after application launch.
application.registerForRemoteNotifications()
application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: .Alert, categories: nil))
initLocationManager()
return true
}
为什么声音和徽章不起作用?
答案 0 :(得分:0)
php代码看起来没问题。在应用程序中,您是否注册了推送通知?还尝试卸载应用程序,然后重新安装它并接受应用程序的声音和徽章。
编辑:同时在您的应用设置中启用声音和徽章。
编辑2:试试这个:执行:let types:UIUserNotificationType = [UIUserNotificationType.Alert, UIUserNotificationType.Badge, UIUserNotificationType.Sound]
然后application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: types, categories: nil))
您必须为警报,声音和徽章注册应用程序,但您只注册了警报。