我即将开发我的第一个iOS应用程序。对于第一个版本,主要目标是使应用程序成为我网站的网页视图。到目前为止,这很容易,只需将一个webview指向正确的url。我需要帮助的部分是用本地视频播放器替换webview中的Flash视频播放器。
基本上,在网站上,我有一个Flash视频播放器,用RTMP连接到流视频服务器。到目前为止,该网站需要使用闪存视频(因此转换为HTML5视频不是一个选项)。iOS应用程序应该显示网站的原样,除了找到Flash并用本地视频播放器替换它,这样视频播放仍然可以在iPhone/iPad上运行。
有人对此有什么建议吗?
发布于 2014-01-21 07:01:27
这是可以做到的。它可能不干净和漂亮,但这里有一种可能的方法:您需要在显示HTML之前解析它。
首先,您需要拦截UIWebView的load请求调用,以便检查它是否正在调用包含需要解析的Flash的页面的URL。若要拦截加载请求调用,请使用UIWebViewDelegate方法webView:shouldStartLoadWithRequest:navigationType:
读取该URL。
如果该URL与您需要从其中删除Flash的URL匹配,那么您将运行代码,该代码将加载一个HTML,然后解析到web视图中(稍后将详细介绍),并将NO
返回给webView: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并摆脱了你的闪存,你就可以用[webView loadHTMLString:string baseURL:nil];
把它加载到你的网页视图中了
最后,您需要通过代码将本地电影播放器插入到web视图的顶部。你将不得不处理屏幕旋转和大小调整,以及本地玩家在网页上的位置,但我会留给你的乐趣。
这是大量的原材料,但是应该让你进行一个可能的解决办法。
发布于 2014-01-21 03:46:50
因此,您所要求的是在本机应用程序中显示一个WebView,并在这个WebView中显示一些本机组件。这是做不到的。
为此,您必须构建一个完全本地的应用程序。或者在HTML5中使用WebView。
https://stackoverflow.com/questions/21248702
复制相似问题