自定义声音远程推送通知iOS无法正常工作

时间:2015-05-20 09:44:54

标签: ios swift apple-push-notifications

我试图更改远程消息的声音

我已将该文件添加到我的项目中,请参见图1

Structure application

我还在AppDelegate中添加了所有内容。在didFinishLaunchingWithOptions中,我添加了:

 if (UIDevice.currentDevice().systemVersion as NSString).floatValue >= 8.0 {
        UIApplication.sharedApplication().registerUserNotificationSettings(UIUserNotificationSettings(forTypes: .Sound | .Alert | .Badge, categories: nil))
        UIApplication.sharedApplication().registerForRemoteNotifications()
    } else {
        UIApplication.sharedApplication().registerForRemoteNotificationTypes(.Badge | .Sound | .Alert)
    }

    //Clear badge
    UIApplication.sharedApplication().applicationIconBadgeNumber = 0
    UIApplication.sharedApplication().cancelAllLocalNotifications()

我实施的其他方法是:

func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
    let deviceTokenString = deviceToken.hexString
    println(deviceTokenString)
    let task = service.writeForNotifications(token: deviceTokenString, completionHandler: {
    })
    task.resume()
}

func application(application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError) {
    println("Failed to get token: \(error)")
}

我从服务中收到的Json是:

{"aps":{"alert":"The push message!", "sound":"ice.caf"}}

我不确定这一步我忘记改变通知的声音了吗? 当我收到通知时,它始终播放默认声音。

3 个答案:

答案 0 :(得分:9)

您确定该文件已添加到捆绑包中吗?您可以查看Copy Bundle Resources中的Build Phases来查看此内容。

请参阅此图片以获得澄清:

enter image description here

答案 1 :(得分:0)

在通知下检查手机设置的应用。用户可以在此处启用或禁用应用程序的通知,包括徽章,声音和警报的单独设置。

在处理通知之前,请确保声音已开启。

答案 2 :(得分:0)

您需要检查以下内容以推动通知工作

  • 声音文件不应大于30秒
  • 声音文件应为有效格式(.aiff,.wav或.caf文件),但文件的某些时间扩展名显示正确但不正确,因此您需要对其进行转换
  • 声音文件应位于项目的根文件夹中,而不应位于子文件夹中
  • 有效载荷(推送json数据)应采用写入格式(在您的情况下看起来不错)
  • 推送通知应该在项目设置的Capabilities中打开(在您的情况下,它看起来是打开的,因为您收到的是默认声音的通知)