[ios]负荷大的 HTML 字符串在 web 视图中用 LoadHTMLString 方法如何?

发布时间: 2017/3/28 22:33:22
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我不得不使用 UIWebView 'LoadHTMLString' 方法加载到 UIWebView html 字符串。

请找到下面的代码。

[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]

当我加载这时,我的 web 视图是空的它并没有显示出任何东西。

当我将此代码放入文件扩展名 html 与加载到 web 视图它工作正常。

任何一个可以帮我在这加载到 web 视图吗?或任何一个能让我知道什么错在这段代码。

解决方法 1:

你只需要创建一个 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>

看到以上文件,您可以添加标记类似 #latitude##longitude# 在该文件中。和在运行时替换这。象下面的代码看起来。

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>];
赞助商