序言:我正在使用一些我没有编写的代码,而且我对 iOS 几乎一无所知。
该应用程序有一个处理大部分应用程序的 web 视图;内部链接在 web 视图中加载,其他站点的链接在 Safari 中打开,这是预期的。但是,嵌入谷歌地图也会导致 safari 打开。我认为我找到了相关的控制器代码,它看起来像这样:
// a bit higher up
static NSString *const siteURL = @"http://my.example.com"
if (![request.URL.absoluteString hasPrefix:siteUrl])
{
if ([[UIApplication sharedApplication] canOpenURL:request.URL])
{
[[UIApplication sharedApplication] openURL:request.URL];
}
return NO;
}
现在因为 'maps.google.com' 不是以 'my.example.com' 开头的,所以它转而用于 safari - 这对我来说很有意义。但是,我尝试修改这个:
static NSString *const googleMaps = @"http://maps.google.com"
if (! ([request.URL.absoluteString hasPrefix:siteUrl] || [request.URL.absoluteString hasPrefix:googleMaps]))
{
if ([[UIApplication sharedApplication] canOpenURL:request.URL])
{
[[UIApplication sharedApplication] openURL:request.URL];
}
return NO;
}
这也有效。但我需要添加更多的 URL。我唯一的选择是继续添加“或”和字符串常量吗?或者有没有办法制作一个数组并说“如果它匹配其中任何一个”?对不起,如果这个问题看起来很简单。
在 PHP 中,我只是in_array('string', $array)
按照我的条件做一些事情,我想我正在寻找如何在 iOS 中做到这一点