选择在 iOS 应用上的外部浏览器中加载的内容
Posted
技术标签:
【中文标题】选择在 iOS 应用上的外部浏览器中加载的内容【英文标题】:Choosing what loads in external browser on iOS app 【发布时间】:2011-12-20 10:53:45 【问题描述】:我开发了一个在查询手机和 phonegap 中运行的应用程序。该应用程序有两个部分,都从外部数据库中提取数据以便于更新。这两个领域是电影和内容。电影从 youtube 流式传输,内容是从外部数据库中提取的文本并显示为迷你网页。
一切正常,除了列出所有电影的电影页面(带有小预览图像)重定向到 youtube,打开列表中的第一个视频。添加:
- (BOOL)webView:(UIWebView *)theWebView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
NSURL *url = [request URL];
if ([[url scheme] isEqualToString:@"http://"] || [[url scheme] isEqualToString:@"https://"])
return YES;
else
return [ super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType ];
到应用程序的 delegate.m 文件解决了这个问题,但创建了另一个问题。在应用程序的第二部分从数据库中提取的内容有一些指向外部网页的链接,我们希望在 safari 中打开这些内容,以便为用户提供最佳查看可能性,但即使链接有 target=由于上面的覆盖代码,它们仍然在应用程序中打开“_blank”。
有没有办法搜索 youtube 链接而不是 http || https?
希望这能解释我的问题,欢迎任何帮助。
【问题讨论】:
【参考方案1】:我找到了解决方案,更改代码以检查 www.youtube.com 首先解决了问题。幸运的是,应用程序中的所有链接都指向 m.youtube.com,所以这解决了你不转发的问题;)
- (BOOL)webView:(UIWebView *)theWebView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
NSURL *url = [request URL];
if ([[url host] isEqualToString:@"www.youtube.com"])
return YES;
else if ([[url scheme] isEqualToString:@"http://"] || [[url scheme] isEqualToString:@"https://"])
return YES;
else
return [ super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType ];
【讨论】:
以上是关于选择在 iOS 应用上的外部浏览器中加载的内容的主要内容,如果未能解决你的问题,请参考以下文章
Phonegap混合iOS应用程序中加载的远程网页可以将数据保存到iOS文件系统吗?
如何在 CSS 的其余部分同时显示在 CSS 中加载的背景图像
无法访问 iframe 中加载的自己域上的 httponly 标记 cookie