loadHTMLString baseURL: ноль не работает в iOS5 - PullRequest
6 голосов
/ 02 ноября 2011

У меня проблема с UIWebView. Я хочу сделать свой собственный HTML-код в UIWebView.

Если я использую приведенный ниже код, он работает нормально.

    NSBundle *thisBundle = [NSBundle mainBundle];
    NSString *path = [thisBundle pathForResource:@"foo" ofType:@"html"];
    NSURL *baseURL = [NSURL fileURLWithPath:path];
    [self.webView loadHTMLString:@"foo.html" baseURL:baseURL];

Я хочу сделать HTML с кодом ниже. Но это не работает. foo.html содержит точно такой же контент, что и NSString *. Есть намеки? Заранее спасибо. =)

    NSString* one = @"<html><head><title></title></head><body><img src=\"image.jpg\"/></body></html>";
    [self.webView loadHTMLString:one baseURL:nil] ;

Ответы [ 2 ]

23 голосов
/ 02 ноября 2011

Я использую этот код, который отлично работает:

NSString* htmlContent = @"<html><head><title></title></head><body><img src='image.jpg' /></body></html>";
[self.webView loadHTMLString:htmlContent baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]];

Но убедитесь, что image.jpg включен в ваш проект.

1 голос
/ 05 ноября 2014

создайте JS-файл demo.js и добавьте код

var hello = function(str){ return str; };

add UIWebView => Чтобы встроить JavaScript в фиктивный HTML-файл и загрузить его вUIWebView

[self.webView loadHTMLString:@"<script src=\"demo.js\"></script>" baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] resourcePath]]];

Вот код для выполнения вызова JS

NString *str=@"hi JavaScript";
NSString *function = [[NSString alloc] initWithFormat: @"hello(%@)", str];
NSString *result = [webView stringByEvaluatingJavaScriptFromString:function];

Теперь есть один важный совет по безопасности, чтобы это действительно работало: UIWebView долженна самом деле будет загружен вид.Он не должен быть видимым, но для того, чтобы механизм WebKit выполнил JS, он должен быть в представлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...