【问题标题】:iOS App: Replace Flash in webview with native playeriOS App:用原生播放器替换 webview 中的 Flash
【发布时间】:2014-01-21 03:40:40
【问题描述】:

我即将开发我的第一个 iOS 应用。对于第一个版本,主要目标是让应用程序成为我网站的 web 视图。到目前为止,这很容易,只需将 webview 指向正确的 url。我需要帮助的部分是用原生视频播放器替换 web 视图中的 Flash 视频播放器。

基本上在网站上,我有一个 Flash 视频播放器,它通过 RTMP 连接到流式视频服务器。截至目前,该网站需要使用 Flash 视频(因此不能转换为 HTML5 视频)。 iOS 应用应按原样显示网站,除了找到 Flash 播放器并将其替换为原生视频播放器,以便视频播放仍然可以在 iPhone/iPad 上播放。

有没有人对此有任何建议?

【问题讨论】:

    标签: ios ipad flash video webview


    【解决方案1】:

    这是可以做到的。它可能不干净和漂亮,但这是一种可能的方法:您需要在显示 HTML 之前对其进行解析。

    首先,您需要拦截 UIWebView 的加载请求调用,以便检查它是否正在调用包含您需要解析的 Flash 的页面的 URL。要拦截加载请求调用,请使用 UIWebViewDelegate 方法webView:shouldStartLoadWithRequest:navigationType: 读取 URL。

    如果 URL 与您需要从中删除 Flash 的 URL 匹配,您将运行加载 HTML 字符串的代码,您将解析到 Web 视图中(稍后会详细介绍)并返回 NOwebView:shouldStartLoadWithRequest:navigationType: 委托方法。这意味着当用户尝试访问包含 Flash 的页面时,我们将阻止 UIWebView 执行其操作并使用我们自己的解析内容加载视图。

    一旦确定需要解析 HTML,就需要进入一个可以使用的变量。以字符串形式获取页面的 HTML:

    NSURL *yourURL = [NSURL URLWithString:@"http://google.com"];
    NSError *error;
    NSString *htmlString = [NSString stringWithContentsOfURL:yourURL encoding:NSUTF8Encoding error:&error];
    

    获得字符串后,要从 HTML 中删除 Flash 代码,请参阅以下问题:

    Comment out a string in HTML before UIWebView can display it

    解析 HTML 并删除 Flash 后,您可以使用 [webView loadHTMLString:string baseURL:nil]; 将其加载到 Web 视图中

    最后,您需要通过代码在 Web 视图顶部插入一个原生电影播放器​​。您将不得不处理屏幕旋转以及本机播放器在 Web 视图顶部的大小和位置,但我会将这些乐趣留给您。

    这是很多原材料,但应该能让你继续寻找可能的解决方案。

    【讨论】:

      【解决方案2】:

      所以,您的要求是在本机应用程序中显示一个 WebView,并在此 WebView 中显示一些本机组件。这是做不到的。

      您必须为此构建一个完全原生的应用程序。或者在 WebView 中使用 HTML5。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-06
        • 1970-01-01
        相关资源
        最近更新 更多