推送通知:没有声音

时间:2015-01-07 09:13:11

标签: ios swift parse-platform notifications push-notification

我已经使用Parse.com在我的应用程序中实现了推送通知系统,一切都很棒!

我唯一的问题是,当通知到达时:它不播放任何声音!

我进入设置(在我的平板电脑中),在通知下,我看到了:

enter image description here

当您看到“声音”和“徽章”关闭时。如果我打开它们,那么当推送通知到达时:它会播放声音!

所以......我希望在安装我的应用程序时,这两个选项默认为TRUE。

这可能吗?我怎么能这样做?

我在Swift工作,到目前为止这是我的代码:

方法didFinishLaunchingWithOptions

 var pushSettings: UIUserNotificationSettings = UIUserNotificationSettings(forTypes: UIUserNotificationType.Sound | UIUserNotificationType.Alert | UIUserNotificationType.Badge , categories: nil)
    application.registerUserNotificationSettings(pushSettings)
    application.registerForRemoteNotifications()

非常感谢帮助我

4 个答案:

答案 0 :(得分:4)

UIApplication.sharedApplication().registerUserNotificationSettings(UIUserNotificationSettings(forTypes: UIUserNotificationType.Badge | UIUserNotificationType.Sound | UIUserNotificationType.Alert, categories: nil))

你必须设置soundName,因为默认是没有声音:

  

对于此属性,请指定a的文件名(包括扩展名)   应用程序主要包中的声音资源或   UILocalNotificationDefaultSoundName请求默认系统   声音。当系统显示本地通知的警报时   徽章应用程序图标,它播放此声音。默认值为nil(no   声音)。不支持持续时间超过30秒的声音。如果   你指定一个播放超过30秒的声音的文件,   而是播放默认声音。

yourNotification.soundName = UILocalNotificationDefaultSoundName

soundName

您需要使用的远程通知  The Notification Payload

答案 1 :(得分:0)

与UIUserNotificationSettings类似,请尝试使用RemoteNotification。

例如,在Objective-C中:

 [[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];

答案 2 :(得分:0)

我想这只是你在这个精确设备上遇到的问题。在另一个上尝试,看看它是否不同。

答案 3 :(得分:0)

如果您希望为通知播放IOS标准声音,则需要将content.sound设置为UNNotificationSound.default() 您可以在我的日程安排功能中执行此操作,就像我在此处所做的那样:

func schdule(date:Date,repeats:Bool)->Date?{
    let content = UNMutableNotificationContent()
    content.sound = UNNotificationSound.default()
    content.title = "Title"
    content.body = "blablablabla"
    content.setValue("YES", forKeyPath:"shouldAlwaysAlertWhileAppIsForeground")

    let trigger = UNCalendarNotificationTrigger(dateMatching: yourDateComponents,repeats: repeats)
    let request = UNNotificationRequest(identifier: "TestNotification", content: content, trigger: trigger)

    UNUserNotificationCenter.current().add(request) { (error:Error?) in
        if error == nil {
            print("Notification Schduled",trigger.nextTriggerDate()?.formattedDate ?? "Date nil")
        } else {
            print("Error schduling a notification",error?.localizedDescription ?? "")
        }
    }
    return trigger.nextTriggerDate()
}