我开发了一个在查询移动和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?
希望这能解释我的问题,并欢迎任何帮助。
最佳答案
我找到了解决方案,更改代码以首先检查 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 - 选择 iOS 应用程序的外部浏览器中加载的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8574299/