- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 [myWebView loadHTMLString:htmlString baseURL:documentsDirectoryURL]
加载 UIWebView|使用 HTML 的本地 NSString 和应用程序文档目录中目录的 baseURL。
问题是 HTML 包含 <img>
带有从上述目录加载的图像的标签。它不是包含图像的 Documents 目录中的目录,而是包含指向应用程序包中包含的图像的符号链接(symbolic link)。
首次启动加载 UIWebView 时,图像无法加载,导致出现标准的 Safari 蓝色问号。如果我随后退出应用程序,重新启动并再次加载 UIWebView,图像加载正常。
有其他人遇到过这个问题吗?
符号链接(symbolic link)是这样创建的:
- (void)createSymbolicLinksForURL:(NSURL *)url inDirectory:(NSURL *)directory {
NSFileManager *fileManager = [NSFileManager defaultManager];
NSDirectoryEnumerator *dirEnum = [fileManager enumeratorAtURL:url
includingPropertiesForKeys:[NSArray arrayWithObject:NSURLIsDirectoryKey]
options:NSDirectoryEnumerationSkipsHiddenFiles | NSDirectoryEnumerationSkipsPackageDescendants
errorHandler:nil];
NSArray *resourceKeys = [NSArray arrayWithObjects:NSURLIsSymbolicLinkKey, NSURLIsDirectoryKey, nil];
for (NSURL *bundledURL in dirEnum) {
if ([[[bundledURL resourceValuesForKeys:resourceKeys error:nil] objectForKey:NSURLIsDirectoryKey] boolValue]) continue;
NSArray *bundledURLPathComponents = [bundledURL pathComponents];
NSURL *destinationURL = directory;
for (NSUInteger componentIndex = [bundledURLPathComponents count] - dirEnum.level; componentIndex < [bundledURLPathComponents count]; componentIndex++) {
destinationURL = [destinationURL URLByAppendingPathComponent:[bundledURLPathComponents objectAtIndex:componentIndex]];
}
if ([fileManager fileExistsAtPath:destinationURL.path]) {
if ([[[destinationURL resourceValuesForKeys:resourceKeys error:nil] objectForKey:NSURLIsSymbolicLinkKey] boolValue]) {
[fileManager removeItemAtURL:destinationURL error:nil];
}
else {
continue;
}
}
NSURL *container = [destinationURL URLByDeletingLastPathComponent];
if (![fileManager fileExistsAtPath:container.path]) [fileManager createDirectoryAtURL:container withIntermediateDirectories:YES attributes:nil error:nil];
NSError *error = nil;
[fileManager createSymbolicLinkAtURL:destinationURL withDestinationURL:bundledURL error:&error];
if (error) NSLog(@"Failed to create symbolic link for %@ (Error: %@)", bundledURL, error);
}
}
UIWebView 加载的 HTML 字符串如下所示(这只是一个片段):
<img src="images/thumb.jpg">
<img src="images/thumb1.jpg">
<img src="images/thumb2.jpg">
在第一次启动时产生这样的结果:
...以及在任何后续发布中:
最佳答案
似乎将符号链接(symbolic link)移动到 Documents 目录的根目录中,因此缩短了 <img>
标记为 <img src="thumb.jpg">
,例如,解决了问题 - 首次启动时加载的图像。
这还不够,因为我确实需要将资源分组到 Documents 目录内的目录中。所以我改为尝试扩展 <img>
标签以包含符号链接(symbolic link)的绝对 URL。例如(在模拟器中运行时):
<img src="file://localhost/Users/adam/Library/Application%20Support/iPhone%20Simulator/5.1/Applications/677CFABC-D16A-42C8-8F08-6FF415522FB6/Documents/images/thumb.jpg">
..它有效!
感谢S P Varma小费!
关于iphone - 图像未使用链接到 bundle 的文档目录中的符号链接(symbolic link)加载到 UIWebView 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12089802/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!