首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WKWebView loadData可用于在iOS 8中显示NSData (UIWebView除外)

WKWebView loadData可用于在iOS 8中显示NSData (UIWebView除外)
EN

Stack Overflow用户
提问于 2016-02-19 11:26:05
回答 1查看 3.1K关注 0票数 2

我想知道是否有任何替代loadData (仅限iOS 9)函数的WKWebView,而不使用它的哥哥UIWebView

也许有一种方法可以使用loadHTMLString来显示文档文件(xlsx、docx、pptx、pdf、图像),比如我如何在下面的代码中显示音频或视频文件。

它必须能够接受NSData,因为文件在磁盘中一直都是加密的,所以loadRequest是不可能的。

下面是我查看文件的代码:

代码语言:javascript
运行
复制
if ( mimeType == kMimeTypeVideo || mimeType == kMimeTypeAudio ) {
    NSString *contentType = [MIMETypeToFileExtViceVersaConverter convertFileExtensionToMimeType:shareWithObject.fileExtension];

    NSString *base64String = [fileData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];

    NSString *str = [NSString stringWithFormat:@" \
                     <html><head></head><body style=\"margin:0;width:100%%;height:100%%;\">\
                     <video controls height=\"100%%\" width=\"100%%\"> \
                     <source type=\"%@\" src=\"data:%@;base64,%@\"> \
                     </video></body></html>", contentType, contentType, base64String];

    [_webView loadHTMLString:str baseURL:[[NSBundle mainBundle] resourceURL]];
} else {
    NSString *contentType = [MIMETypeToFileExtViceVersaConverter convertFileExtensionToMimeType:shareWithObject.fileExtension];

    [_webView loadData:fileData MIMEType:contentType characterEncodingName:@"UTF-8" baseURL:[[NSBundle mainBundle] resourceURL]];
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-25 13:25:49

到目前为止,除了使用UIWebView之外,没有别的办法了。

而且,为了增加使用loadData函数WKWebView的麻烦,它在可以查看的文件中的支持非常有限,比如它如何不能加载doc/docx和ppt/pptx文件。

总之,如果您想让WKWebView成为NSData转换文档的默认查看器,就不要使用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35504175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档