基本上我正在尝试为我的webview找到网址中包含的NSSet对象。
我如何使用NSScanner或NSRange执行此操作?
以下是我正在使用的内容。
//External file links
NSURL* externalURL = [request URL];
NSString *externalFileExtension = [[request URL] pathExtension];
//External file extensions
NSLog(@"fileExtension is: %@", externalFileExtension);
NSSet *supportedFileExtensions = [NSSet setWithObjects:@"mpeg", @"mpg", @"m1s", @"mpa", @"mp2", @"m2a", @"mp2v", @"mv2", @"m2s", @"avi", @"mov", @"qt", @"asf", @"asx", @"wmv", @"wma", @"wmx", @"rm", @"ra", @"ram", @"rmvb", @"mp4", @"3gp", @"3gpp", @"ogm", @"mkv", @"flv", @"mv4", @"srt", @"swf", @"vob", @"aif", @"iff", @"m3u", @"m4a", @"mid", @"mp3", @"mpa", @"wav", @"aac", @"7z", @"cbr", @"deb", @"gz", @"pkg", @"rar", @"rpm", @"sitx", @"tar.gz", @"zip", @"zipx", @"ipsw", @"bin", @"cue", @"dmg", @"iso", @"mdf", @"toast", @"vcd", @"torrent", @"nes", @"rom", @"doc", @"docs", @"msg", @"odt", @"rtf", @"txt", @"wpd", @"wps", nil];
if ([supportedFileExtensions containsObject:externalFileExtension]) {
//my actions
}
由于链接的类型,某些网站并不完全使用文件扩展名,有些网站使用链接中的扩展名类型,即“zip = blahblah”或“blahblahzipblah”
我需要搜索点击的链接以找到supportedFileExtensions部分。
先谢谢你。
更新: 感谢rmaddy让我朝着正确的方向前进。对于我原来的问题,它确实解决了它。但我在其他一些网站上使用时遇到了问题。
我有一个webview,其中我有一些指向不同网站的链接,如Media Fire,Copy,Box等。甚至是直接下载链接。例如,媒体消防链接开始下载甚至没有访问该网站,几乎就像它只是下载文本。直接下载甚至不会解雇我的下载器。
使用接受的答案,区分这些的最简洁方法是什么?
答案 0 :(得分:1)
以下内容应该是您想要的:
//External file links
NSURL* externalURL = [request URL];
NSString *urlString = [externalURL absoluteString];
NSSet *supportedFileExtensions = [NSSet setWithObjects:@"mpeg", @"mpg", @"m1s", @"mpa", @"mp2", @"m2a", @"mp2v", @"mv2", @"m2s", @"avi", @"mov", @"qt", @"asf", @"asx", @"wmv", @"wma", @"wmx", @"rm", @"ra", @"ram", @"rmvb", @"mp4", @"3gp", @"3gpp", @"ogm", @"mkv", @"flv", @"mv4", @"srt", @"swf", @"vob", @"aif", @"iff", @"m3u", @"m4a", @"mid", @"mp3", @"mpa", @"wav", @"aac", @"7z", @"cbr", @"deb", @"gz", @"pkg", @"rar", @"rpm", @"sitx", @"tar.gz", @"zip", @"zipx", @"ipsw", @"bin", @"cue", @"dmg", @"iso", @"mdf", @"toast", @"vcd", @"torrent", @"nes", @"rom", @"doc", @"docs", @"msg", @"odt", @"rtf", @"txt", @"wpd", @"wps", nil];
for (NSString *extension in supportedFileExtensions) {
if ([urlString rangeOfString:extension].location != NSNotFound) {
// Found extension somewhere in the URL - process it as needed
break; // stop looking for more
}
}
答案 1 :(得分:0)
也许这样的没有使用NSScanner或NSRange:
BOOL result = NO;
for (NSString *extension in supportedFileExtensions) {
if ([externalFileExtension isEqualToString:extension]) {
result = YES;
break;
}
}