gpt4 book ai didi

ios - 更新应用程序后 UILocalNotification 自定义声音无法正常工作

转载 作者:搜寻专家 更新时间:2023-10-31 22:44:53 24 4
gpt4 key购买 nike

我目前遇到一个问题,即 UILocalNotifications 中的自定义声音仅在应用程序首次安装时有效。第二次安装该应用程序(即模拟升级)后,声音会恢复为默认声音,即使是新创建的通知也是如此。我创建了一个新的测试项目来测试最低限度,但问题仍然存在。下面是我的 ViewController:

class ViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.

let notification = createNotification()
UIApplication.shared.scheduleLocalNotification(notification)
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

func createNotification() -> UILocalNotification {
let tenSecondsLater = Date().addingTimeInterval(10)

let notification = UILocalNotification()
notification.fireDate = tenSecondsLater
notification.alertTitle = "Test Notification Title"
notification.alertBody = "body"
notification.soundName = "alarm-20secs.wav"

return notification
}

在 AppDelegate 中正确设置了权限:

UIApplication.shared.registerUserNotificationSettings(UIUserNotificationSettings(types: [UIUserNotificationType.alert, UIUserNotificationType.badge, UIUserNotificationType.sound], categories: nil))

重现步骤:

  1. 在 Xcode 中按“运行”安装应用。按主页到后台应用程序
  2. ~10 秒后,警报正常显示并播放正确的声音
  3. 在 Xcode 中按“运行”再次安装应用程序。按主页到后台应用程序
  4. ~10 秒后,警报出现,但现在播放默认声音。

我已经尝试调用 cancelAllLocalNotifications(),但它似乎没有任何改变。 Force kill 不会重现问题,只会重现问题。升级后,仍然可以用AVPlayer播放声音,不会像删除文件一样;只有本地通知会受到影响。

我很清楚 UILocalNotification 在 iOS 10 中被弃用了,但是新的 UserNotification 框架不支持重复通知,这是我需要的功能。此问题发生在运行 iOS 10 和 10.0.2 的 sim 卡和设备中。我找不到任何其他线程来描述这个特定问题,对于大多数其他人来说,他们根本无法让他们的声音工作。在这种情况下,它工作正常,但只有在重新安装应用程序后才能正常工作。当我发布新版本时,这将是一个问题,因为升级路径会破坏通知声音,这对我的应用程序至关重要。

最佳答案

可能到现在为止,您已经意识到这是由 ios 10.. 中的错误引起的。

重启手机(在应用程序更新后)也可以解决这个问题。

关于ios - 更新应用程序后 UILocalNotification 自定义声音无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39782486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com