iOS应用:将webview中的Flash替换为本机播放器

时间:2014-01-21 03:40:41

标签: ios ipad flash video webview

我即将开始使用我的第一款iOS应用程序。对于第一个版本,主要目标是使应用程序成为我网站的webview。到目前为止,只需将webview指向正确的URL即可。我需要帮助的部分是用原生视频播放器替换webview中的Flash视频播放器。

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

有没有人对完成此事有任何建议?

2 个答案:

答案 0 :(得分:0)

因此,您要问的是在本机应用程序中显示WebView,并在此WebView中显示一些本机组件。这是不可能做到的。

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

答案 1 :(得分:0)

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

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

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

一旦你发现需要解析HTML,就需要进入一个可以使用的变量。要将页面的HTML作为字符串获取:

webView:shouldStartLoadWithRequest:navigationType:

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

Comment out a string in HTML before UIWebView can display it

解析完HTML并删除Flash后,您可以使用NSURL *yourURL = [NSURL URLWithString:@"http://google.com"]; NSError *error; NSString *htmlString = [NSString stringWithContentsOfURL:yourURL encoding:NSUTF8Encoding error:&error];

将其加载到网络视图中

最后,您需要通过代码在Web视图的顶部插入本机电影播放器​​。你将不得不在网页视图的顶部处理屏幕旋转和大小调整以及原生播放器的放置,但我将留给你这么有趣。

这是很多原材料,但应该让你继续解决这个问题。