WKWebViewを利用したアプリを開発しております
「WKWebViewでバックグランド再生をしたい」のですが、
アプリをバックグラウンドにした時に停止してしまい、アプリをバックグラウンドにした後も再生を続けることができません。
詳しい方がいれば教えて頂きたいです。

実際に試した実装は以下です。

  1. Appのバックグラウンドモードをオンにする

    設定

    private func setupAudioSession() {
        do {
            try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
            try AVAudioSession.sharedInstance().setActive(true)
        } catch {
            print(error)
        }
    }
    
  2. Appがバックグラウンドに行った時に、Webviewへメッセージ送信

    ...
    
    NotificationCenter.default.addObserver(forName: NSNotification.Name.UIApplicationDidEnterBackground, object: nil, queue: nil, using: didEnterBackground)
    ...
    
    
    internal func didEnterBackground(notification: Notification) {
        playVideo()
    }
    
    func playVideo() {
        guard let js: String = Bundle.main.path(forResource: "PlayVideo", ofType: "js") else { return }
        webView.evaluateJavaScript(js, completionHandler: nil)
        print("play video")
    }
    

    PlayVideo.js

    (function() {
      var videos = document.getElementsByTagName('video');
      for(var i = 0; i < videos.length; i++) { videos[i].play(); }
    })();
    
  3. コントロールセンターからの操作に対応する

    private func setupRemoteControl() {
        MPRemoteCommandCenter.shared().playCommand.isEnabled = true
        MPRemoteCommandCenter.shared().playCommand.addTarget { [weak self] (event) -> MPRemoteCommandHandlerStatus in
            self?.playVideo()
            print("MPRemoteCommandCenter playCommand")
            return .success
        }
        UIApplication.shared.beginReceivingRemoteControlEvents()
        self.becomeFirstResponder()
    }
    

実装したコードはこちらにあげております。