Search code examples
iosiphoneobjective-cuiwebviewdocument

Docx support in UIWebview(iOS)?


I have checked the official links for doc support, and it's clear that docx is not supported in UIWebview.

But, I also found out that some guys were able to open docx files in UIWebview:

Cannot open docx file through webbrowser in app using OpenIn functionality

Why doc and docx losing style information in iOS?

How to open Microsoft Office documents in iPhone

Also, afaik, iOS safari browser is built upon UIWebview and I am able to open docx files from internet in the browser.

However, when I download a docx from my test server (I have cross checked the downloaded docx by importing it from simulator and it opens perfectly on my mac), I am unable to view it in UIWebview.

I am confused, Is docx Supported or not? Or it seems that docx has further variety of formats out which some are supported?

Here is my loading code:

NSURLRequest *request = [NSURLRequest requestWithURL:urlPath];
[webViewForDocsView loadRequest:request];

Solution

  • Don't know why but using the URL scheme to load docx didn't work, (below code didn't work)

     NSURLRequest *request = [NSURLRequest requestWithURL:urlPath];
    [webViewForDocsView loadRequest:request];
    

    Instead, loading the file in memory(using NSData) and loading the data with MIME type worked (the below code worked like charm!)

    NSString *path = [urlFileInView path];
    NSData *data = [[NSFileManager defaultManager] contentsAtPath:path];
    
    
    webViewForDocsView.delegate = self;
    [webViewForDocsView loadData:data MIMEType:@"application/vnd.openxmlformats-officedocument.wordprocessingml.document" textEncodingName:@"UTF-8" baseURL:nil];