【问题标题】:How to continue listening to events from google cast when app is in background?当应用程序处于后台时,如何继续收听来自 google cast 的事件?
【发布时间】:2019-01-16 03:00:40
【问题描述】:

我已经设置了一个通道来接收来自接收者应用的消息:

import Foundation
import GoogleCast

class GcastChannel: GCKCastChannel {

    var gcastDelegate: GcastDelegate?

    override func didReceiveTextMessage(_ message: String) {
        if let jsonData = message.data(using: .utf8) {
            do {
                let gcastEvent = try JSONDecoder().decode( GcastEvent.self, from: jsonData)
                gcastDelegate?.didReceiveGcastEvent(event: gcastEvent)
            } catch {
                print("message decode error: \(error)")
            }
        }
    }
}

并在主视图控制器中设置会话管理器和监听器:

func sessionManager(_ sessionManager: GCKSessionManager, didStart session: GCKCastSession) {
    castSession = session
    castSession?.add(gcastChannel)
    gcastChannel.gcastDelegate = self
}

当应用程序在前台时它可以完美运行,但是当应用程序在后台时,它不再响应事件。此外,当再次将应用置于前台时,应用仍然无法响应正在发送的事件。

当应用在后台时,如何让应用响应事件?

【问题讨论】:

    标签: ios iphone swift chromecast google-cast


    【解决方案1】:

    基于此link,当应用在后台时,无法将新媒体从应用推送到 chromecast。

    在 iOS Sender API 2.0 版中,GCKCastSocket 在收到 UIApplicationDidEnterBackgroundNotification 时关闭,这不是可以配置的。

    您也可以参考这篇文章:How to keep Chrome Cast running in background iOS?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-30
      • 2015-04-27
      • 2018-02-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多