嘿,伙计们此刻我不在家,所以我无法提供任何代码,所以我会尝试解释我的问题。 在我的ios应用程序中,我尝试使用photoswipe实现图像库,根据在uitableview中选择的餐馆,将显示不同的图像。 为了测试这个,我已经在我的主包中导入了所有必需的html,javascript,css文件,然后我在我的uiwebview中加载了index.html文件。目前,图库为每个选择的餐馆显示相同的图像,因为index.html文件保存了一些测试图像的静态URL链接,如下所示:
<!DOCTYPE html>
<html>
<head>
<title>PhotoSwipe</title>
<meta name="author" content="Ste Brennan - Code Computerlove -http://www.codecomputerlove.com/" />
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" name="viewport" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<link href="styles.css" type="text/css" rel="stylesheet" />
<link href="../photoswipe.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="../lib/klass.min.js"></script>
<script type="text/javascript" src="../code.photoswipe-3.0.5.min.js"></script>
<script type="text/javascript">
(function(window, PhotoSwipe){
document.addEventListener('DOMContentLoaded', function(){
var
options = {},
instance = PhotoSwipe.attach( window.document.querySelectorAll('#Gallery a'), options );
}, false);
}(window, window.Code.PhotoSwipe));
</script>
</head>
<body>
<div id="MainContent">
<ul id="Gallery" class="gallery">
<!-- ---------------------------LOOK HERE------------ -->
<li><a href="TEST IMAGE 1 URL"><img src="THUMBNAIL TEST IMAGE 1 URL" alt="Image 001" /></a></li>
<li><a href="TEST IMAGE 2 URL"><img src="THUMBNAIL TEST IMAGE 2 URL" alt="Image 002" /></a></li>
</ul>
</div>
</body>
</html>
是否有向这个本地html文件注入一个nsstring,其中包含指向相关餐厅的链接?
我尝试使用stringByEvaluatingJavaScriptFromString
覆盖<ul>
的id为“Gallery”的html内容,但这会减慢完成将图像输出到缩略图网格的过程。
有没有办法动态编辑本地index.html文件?
答案 0 :(得分:1)
您可以使用NSString方法stringWithContentsOfFile:encoding:error:
获取html文件的全部内容,对其进行编辑,然后使用writeToFile:atomically:encoding:error:
将其设置回来。或者可以使用NSFileHandle方法进行更低级别的访问。
修改强>
获取文件目录:
NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
然后将文件名附加到它。
NSString *htmlFilePath = [documentsPath stringByAppendingPathComponent:@"index.html"];
并使用上述路径作为writeToFile:atomically:encoding:error:
答案 1 :(得分:1)
我需要从我的应用程序富文本编辑器中显示以前保存的HTML。我尝试了几个javascript注入解决方案,但以下NSString替换解决方案是最顺利的。
在我的详细viewDidLoad中我使用模板html文件,当用户从主uitableview中选择文档时,我会做一个简单的替换操作来放入一些以前保存的文本:
NSString *path = [[NSBundle mainBundle] pathForResource:@"iosDemo1" ofType:@"html"];
NSError *error = nil;
NSString *html = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
NSLog(@" html %@",html);
// Replace text "Marker" in the template with the previously saved rich text editor html
NSString* modifiedHtml = [html stringByReplacingOccurrencesOfString:@"Marker" withString:self.htmlDocumentText];
// Tell the web view to load the modified Html
[self.webView loadHTMLString:modifiedHtml baseURL:nil];