Edited at

WKWebViewにローカルの画像をJavaScriptで渡して<img>タグで表示させる

More than 3 years have passed since last update.

WKWebViewはローカルのファイルを file:// によって読み込ませることが出来ません。

しかし、JavaScriptを介してbase64エンコードしたデータ文字列として渡すことが出来れば利用できます。

下記は、ローカルのPNG画像をbase64エンコードしたデータ文字列として

JavaScriptを介して画面に受け渡して<img>タグで表示します。

// (WKWebView *)webView

NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation([UIImage imageNamed:@"SOME_PNG_FILE_NAME"])];
NSString *image64EncodedData = [imageData base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed];
NSString *bodyHTML = [NSString stringWithFormat:@"<img src=\"data:image/png;base64,%@\"/>", image64EncodedData];
[webView evaluateJavaScript:[NSString stringWithFormat:@"document.body.innerHTML = '%@';", bodyHTML] completionHandler:nil];