Javascript 如何使用LoadHTMLString方法在WebView中加载大型HTML字符串?

Javascript 如何使用LoadHTMLString方法在WebView中加载大型HTML字符串?,javascript,html,ios,objective-c,uiwebview,Javascript,Html,Ios,Objective C,Uiwebview,我必须使用UIWebView的“LoadHTMLString”方法将html字符串加载到UIWebView上 请查找下面的代码 [wv loadHTMLString:[NSString stringWithFormat:@"<!DOCTYPE html><html><head><meta name=\"viewport\" content=\"initial-scale=1.0, user-scalable=no\"><meta charse

我必须使用UIWebView的“LoadHTMLString”方法将html字符串加载到UIWebView上

请查找下面的代码

[wv loadHTMLString:[NSString stringWithFormat:@"<!DOCTYPE html><html><head><meta name=\"viewport\" content=\"initial-scale=1.0, user-scalable=no\"><meta charset=\"utf-8\"><title>Traffic layer</title><style>html, body, #map-canvas {height: 100%%;margin: 0px;padding: 0px}</style><script src=\"https://maps.googleapis.com/maps/api/js?v=3.exp\"></script><script>function initialize() {var myLatlng = new google.maps.LatLng(34.04924594193164, -118.24104309082031);var mapOptions = {zoom: 13,center: myLatlng}var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptiotrafficLayer.setMap(map);}google.maps.event.addDomListener(window, 'load', initialize);</script></head><body><div id=\"map-canvas\"></div></body></html>"] baseURL:nil]
NSString *path = [[NSBundle mainBundle] pathForResource:@"filename" ofType:@"html"];
NSString *html = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];

html = [html stringByReplacingOccurrencesOfString:@"#latitude#" withString:<LATITUDE-VALUE>];
html = [html stringByReplacingOccurrencesOfString:@"#longitude#" withString:<LONGITUDE-VALUE>];
[wv loadHTMLString:[NSString stringWithFormat:@“交通层HTML、正文、地图画布{高度:100%;边距:0px;填充:0px}函数初始化(){var myLatlng=new google.maps.LatLng(34.04924594193164,-118.2410430908231);var-mappoptions={缩放:13,中心:myLatlng}var-map=new google.maps.map(document.getElementById('map-canvas')),maoptiotrafficlayer.setMap(map);}google.maps.event.addDomListener(窗口,'load',initialize);“]baseURL:nil]
当我加载它时,我的webview是空的,它没有显示任何内容

当我将此代码放入扩展名为“html”的文件中并加载到webview时,它工作正常


有人能帮我把这个加载到WebView吗?或者有人能告诉我这个代码出了什么问题。

你只需要创建一个html文件并将所有html内容放在其中,然后使用代码加载该文件

[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"filename" ofType:@"html"] isDirectory:NO]]];
而且用这个

NSString *path = [[NSBundle mainBundle] pathForResource:@"filename" ofType:@"html"];
NSString *html = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];

[self.webView loadHTMLString:html baseURL:[[NSBundle mainBundle] bundleURL]];
编辑:

我被忽略了,你们提到加载文件是完美的

我认为问题是因为您在运行时加载了这个字符串

我们都知道,当我们使用html和css文件时,我们需要将这些文件添加到的“复制包资源”中,以便在运行时加载html页面时可以使用这些文件

所以这里可能存在的问题是html字符串中的一些函数在加载之前使用了一些文件或帮助。这就是运行时html创建和加载不起作用的原因

如果我误导了你,你怎么能让我更清楚呢

不过,您可以在html文件中设置运行时值

Exmaple.html

<!DOCTYPE html>
<html>
<head>
</head>

<body>

#latitude# 

#longitude# 

</body>
<html>

经过两天的长时间睡眠,我想到了这个

迅捷的

let path = NSBundle.mainBundle().pathForResource("public_html/index", ofType: "html")
var html = try? NSString(contentsOfFile: path! as String, encoding: NSUTF8StringEncoding)
html = html?.stringByReplacingOccurrencesOfString("#latitude#", withString:"<p class=\"text-center\">Center aligned text.</p><blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p></blockquote>")
webView.loadHTMLString(html as! String, baseURL: NSURL(fileReferenceLiteral: "public_html"))
let path=NSBundle.mainBundle()
var html=try?NSString(contentsOfFile:path!作为字符串,编码:NSUTF8StringEncoding)
html=html?.StringByReplacingOfString(“#纬度#”,带字符串:“

居中对齐的文本。

Lorem ipsum door sit amet,连续添加Elite.Integer posuer a ante.

”) loadHTMLString(html为!字符串,baseURL:NSURL(fileReferenceLiteral:“public_html”))

首先,我的HTML代码在我的项目(public_HTML/index.HTML)中。此代码加载HTML,转换它,替换标记“#latitude#”,并使用目录加载HTML(用于加载JS等).

他是通过绳子问的!不是file@srinivasn-哦,是的,这被忽略了。是的,我正在寻找通过字符串加载。因为它有纬度和经度坐标。我想根据我在应用程序中选择的位置来更改它们。这就是我希望将其作为字符串的原因。如果我将其放入,则无法完成此操作复制到文件并复制到捆绑资源。如果有任何替代方案,请向我建议。是的,您可以使用文件执行此操作。我会给您一个解决方案。感谢您详细的回答@Kampai,您能告诉我您的答案中的“htmlString”是什么吗?它不起作用的原因是因为您的字符串不正确。如果我将该字符串放入简单的html文档中并尝试加载,它通知我出现语法错误:“[error]SyntaxError:意外的关键字'var'。应为';'在var声明之后。”重新计算您尝试加载的字符串,并使其在项目外部进行解析。