如何在辅助显示中显示 web 视图(具有所有交互),例如苹果电视

Posted

技术标签:

【中文标题】如何在辅助显示中显示 web 视图(具有所有交互),例如苹果电视【英文标题】:How to show a webview (with all interaction) in secondary display, like apple Tv 【发布时间】:2017-04-13 10:59:29 【问题描述】:

我有一个视图控制器,它附加了一个 web 视图。我不想将它镜像到连接到 ipad 的外部屏幕上。我能够创建新窗口并显示图像和所有内容,但在这里我想要在辅助显示器上精确镜像 UIWebview(所有点击、链接、网页中的文本字段输入、视频)。

    func initiateTheExternalDisplay() 

    guard UIScreen.screens.count > 1 else 
        return
    
    let externalScreen = UIScreen.screens[1]
    let externalWindow = UIWindow(frame: externalScreen.bounds)
    self.externalSecondaryWindow = externalWindow

    let roortVc = ExternalPresentationViewController() // this contains view to be shown
    self.externalPresentationViewController = rootVc
    externalWindow.rootViewController = rootVc
    externalWindow.screen = externalScreen

    externalWindow.isHidden = false
    externalWindow.makeKeyAndVisible()

这就是我实例化辅助显示器并且工作正常的方式。假设同一个类正在显示 webview,任何人都可以建议我应该从这里(或替代方式)传递什么信息来实现镜像。

【问题讨论】:

【参考方案1】:

我找不到任何方法,所以我使用了解决方法。我截取了 Web 视图控制器的屏幕截图并以 20 fps 左右的速度更新辅助视图,因此它有点滞后,但至少能够在几乎相关的时间内看到相同的交互。

【讨论】:

以上是关于如何在辅助显示中显示 web 视图(具有所有交互),例如苹果电视的主要内容,如果未能解决你的问题,请参考以下文章

如何在具有动态高度的文本视图中显示 html?

即使父视图可访问,子视图也不显示在层次结构中

如何获得具有相同屏幕宽度的 Web 视图?

Drupal Views 如何在具有相同路径的多个显示器之间做出决定

eclipse 或 Myeclipse Debug“显示”视图不显示代码辅助

如何在 Sencha Touch 应用程序中所有视图之外的固定位置添加交互式动态组件