iOS 12.2 - 缺少锁屏控件

iOS 12.2 - Lockscreen controlos missing

自从我更新到 ios 12.2 锁屏控件不再为我工作,我不明白为什么。它在 ios 12.1

中运行良好
  1. 应用已启用capabilities->Background mores -> Audio
  2. 我设置UIApplication.shared.beginReceivingRemoteControlEvents()
  3. 然后我设置

    MPRemoteCommandCenter.shared().playCommand.isEnabled = true                   
    MPRemoteCommandCenter.shared().pauseCommand.isEnabled = true
    MPRemoteCommandCenter.shared().playCommand.addTarget(self, action:#selector(self.playPlayer))
    MPRemoteCommandCenter.shared().pauseCommand.addTarget(self, action: #selector(self.pausePlayer))
    
  4. 然后AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback) and AVAudioSession.sharedInstance().setActive(true)

我使用 AVPlayerAVPlayer 项。 Locksceen 控件从未出现在 ios 12.2 上。知道是什么导致了这个问题吗?谢谢

(我用的是xcode10.2和swift4.2)

编辑:我发现只有当设备在线时才会发生这种情况。如果我立即玩游戏,锁屏控件会出现,然后在几秒钟后消失。如果我以后玩,他们就不会出现了。所以看起来他们在应用程序启动后几秒钟工作,然后不工作

编辑 2:现已修复。问题是由应用将本地 html 文件加载到 webview 引起的。与播放完全无关,仅此而已。解决方法是不加载webview

问题是由应用将本地 html 文件加载到 UIWebView 引起的。与播放完全无关,仅此而已。解决方案是不加载 UIWebView 而是使用 WKWebView 代替。

讨论了类似的问题 here 但我发现它只是因为我已经知道是什么导致了它。

我同意范兹的回答。 我们进一步调查并发现在我们的案例中是在 Google 移动广告框架中使用 UIWebView 来展示广告。每当 Ads HTML 内容有一些与之关联的音频组件时,音频会话就会失去焦点。 P.S。如上所述,这仅发生在 iOS 12.2 及更高版本上。 (我们在不同 iOS 版本的相同测试环境中对此进行了验证。)

更新:现在 Apple 已开始发送警告消息,提示在将应用程序部署到应用程序商店时已弃用 UIWebView。

MESSAGE: " ITMS-90809: Deprecated API Usage - Apple will stop accepting submissions of apps that use UIWebView APIs". Link: https://forums.developer.apple.com/thread/122114

分享这个是因为我们中的一些人可能不会直接使用 UIWebview 或通过第三方使用。