如何将HTML插入UIWebView

28

我有一段包含 HTML 标记的内容,之前是在 UITextView 中展示。现在我的应用下一个版本需要将这些 HTML 内容展示到一个 UIWebView 中。于是我用 UIWebView 取代了 UITextView,但是我无法想出如何将 HTML 段落插入到视图中。似乎需要一个 URLRequest,而我不需要这个请求。我已经将 HTML 内容存储在内存中,我想从内存中加载和展示它。

你有什么建议吗?

3个回答

93

这应该能解决问题:

NSString *myHTML = @"<html><body><h1>Hello, world!</h1></body></html>";
[myUIWebView loadHTMLString:myHTML baseURL:nil];

1
同时,HTML 可以包含带有非真实目标的链接,这样本地应用程序就可以使用 shouldStartLoadRequest 代理捕获那些点击,并执行自定义本机代码。例如:NSString *myHTML = @"<html><body> <a href='r:'>Record</a><br><br> <a href='s:'>Stop</a><br><br> <a href='p:'>Play</a><br><br> </body><html>"; - Nikhil Mathew
1
  • (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { NSURL *URL = [request URL]; if ([[URL scheme] isEqualToString:@"r"]) { [self recordButtonMethod]; return NO; } if ([[URL scheme] isEqualToString:@"s"]) { [self stopButtonMethod]; return NO; } if ([[URL scheme] isEqualToString:@"p"]) { [self playButtonMethod]; return NO; } return YES;
}`//用于捕获链接点击的方法
- Nikhil Mathew

6
- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL;

如果您有任何图片资源,baseURL可以是指向您资源文件夹的fileURL。


5
如果您的HTML没有引用外部文件,那么返回nil - jlehr

0

这个例子展示了我们如何将 HTML 嵌入到 UIWebView 中。

func someFunction() {

    uiWebView.loadHTMLString("<html><body></body></html>", baseURL: nil)
    uiWebView.delegate = self as? UIWebViewDelegate
}

func webViewDidFinishLoad(_ webView: UIWebView) {
    //ready to be processed
}

别忘了从UIWebViewDelegate继承类并将delegate设置为nil


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接