【问题标题】:How do I stream data to a WebView/WebFrame?如何将数据流式传输到 WebView/WebFrame?
【发布时间】:2023-03-16 16:37:02
【问题描述】:

我正在编写一个 Cocoa 应用程序,我想在 Webkit 视图中显示一些数据。数据是我在内部生成的 HTML。不过,它来自缓慢的计算,所以我将建立一个缓冲区(现在在 GCD 队列中)。

WebFrame-loadRequest (URL),它是异步的,还有一堆方法,比如 -loadHTMLString (string) 和 -loadData (raw bytes),它们是同步的。有没有办法异步加载本地 HTML 流?我是否需要设置自己的网络服务器才能将数据流发送到此视图?

【问题讨论】:

  • 这里有一个想法:使用一些包含 javascript 的基本 HTML 加载 webview,以基本上维护已计算的 HTML 数组。在 javascript 中,每 x 秒轮询一次,如果有新的 HTML 数据,则显示它。在 Obj C 中,每当有新数据时,使用 UIWebView 的stringByEvaluatingJavaScriptFromString: 将新数据追加到数组中。
  • 这是一个有趣的想法!这并不理想,但听起来确实合理。
  • iOS 的 webview 不太擅长这种比较复杂的事情。
  • (重读问题:我没有使用 iOS。)
  • 在初始 HTML 中我什至需要一个 JS 计时器吗?如果我在该框架的上下文中评估 JS,我不能直接添加到文档内容吗?

标签: objective-c macos cocoa webkit


【解决方案1】:

子类NSURLProtocol

使用自定义协议处理程序,您可以将 WebFrame 指向自定义 NSURL(如“myproto://foo/bar”),然后编写处理“myproto” URL 并发送它喜欢的任何字节流的处理程序.

【讨论】:

    猜你喜欢
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-27
    • 2017-07-22
    • 2020-07-09
    • 2020-09-03
    相关资源
    最近更新 更多