Docx support in UIWebview(iOS)?

后端 未结 3 2080
离开以前
离开以前 2021-02-06 06:44

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 f

相关标签:
3条回答
  • 2021-02-06 07:23

    Yes UIWebView supports the docx. Just tried loading a docx file from bundle and it seems working fine(in this example named "DOC1.docx")::

    NSString *path = [[NSBundle mainBundle] pathForResource:@"DOC1" ofType:@"docx"];
    NSURL *targetURL = [NSURL fileURLWithPath:path];
    NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
    [mywebView loadRequest:request];
    

    and If you are trying to display a docx file residing on a server somewhere, you can simply load it to your web view directly:

    NSURL *targetURL = [NSURL URLWithString:@"http://www.central.wa.edu.au/Current_Students/JobsCareersandLeavingCentral/Documents/Resume%20Template.docx"];
    NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
    [mywebView loadRequest:request];
    
    0 讨论(0)
  • 2021-02-06 07:38

    Using UIWebView to display select document types

    As per the Apple documentation, docx isn't supported by UIWebView and is deprecated.

    To open docx in app use UIDocumentInteractionController.

    DispatchQueue.main.async {
          let docOpener = UIDocumentInteractionController.init(url: fileURL)
          docOpener.delegate = self
          docOpener.presentPreview(animated: true)
    }
    
    0 讨论(0)
  • 2021-02-06 07:44

    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];
    
    0 讨论(0)
提交回复
热议问题