【问题标题】:Custom sound remote push notification iOS not working自定义声音远程推送通知 iOS 不工作
【发布时间】:2015-05-20 09:44:53
【问题描述】:

我正在尝试更改远程消息的声音

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

我还将所有内容都添加到了我的 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"}}

我不确定我忘记更改通知的声音是哪一步? 当我收到通知时,它总是播放默认声音。

【问题讨论】:

  • 请检查“ice.caf”是否确实在生成的“ipa”文件中。它可能已添加到项目中,但未添加到您的构建中。或者格式无效。例如,尝试使用“wav”文件。
  • 是的,这是我的问题!非常感谢!
  • 是的,IOS 8.3 或最新版本有问题,它可以在 IOS 7 上运行。这可能是一个错误。
  • @cyberlobe 您必须通过推送通知传递它。当您正确设置推送通知时,iOS 会自动处理它。查看我从服务中收到的 json。
  • @HannesVandenBerghe 完成了,实际上问题出在 PHP 脚本中。仍然添加了默认声音。我将其更改为自定义声音名称并且有效

标签: ios swift apple-push-notifications


【解决方案1】:

您确定文件已添加到捆绑包中吗?您可以通过查看Build Phases 中的Copy Bundle Resources 来检查这一点。

请参阅此图片以进行说明:

【讨论】:

    【解决方案2】:

    您需要检查以下内容才能推送通知工作

    • 声音文件不应超过 30 秒
    • 声音文件应为有效格式,(.aiff、.wav 或 .caf 文件)文件的某些扩展名显示正确但不正确,因此您需要对其进行转换
    • 声音文件应该在项目的根文件夹而不是子文件夹中
    • 有效负载(推送 json 数据)应采用正确的格式(在您的情况下看起来不错)
    • 在您的项目设置中的Capabilities 中,推送通知应该是on(在您的情况下,它看起来是on,因为您收到的是默认声音通知)
    • 请确保您的声音文件在Build Phases 中的Copy Bundle Resources 中列出

    【讨论】:

    • 我有一个 31 秒的 .wav 文件,在 iPhone 11 Pro 上运行良好,但在 iPhone 11 上没有声音。我将它缩短到 28 秒(以防万一),现在它适用于每部 iPhone。
    • 如何确保在 Copy Bundle Resources 中收听声音文件?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-28
    • 1970-01-01
    相关资源
    最近更新 更多