【iOS】UIWebViewで表示できる意外なファイル形式

128件のシェア(ちょっぴり話題の記事)

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

先日、iPhoneのSafariでダウンロードできるファイル形式という記事を書いたのですが、こんなコメントを頂きました。

 Safariが対応しているわけではなくiOSレベルでサポートされてます。他のアプリでも同様に扱えます。

これを見て、どうやって実装するんだろう?と思ったので実装方法を調べたところ、UIWebViewを使って表示することが分かりました。

UIWebViewで表示できるファイル形式

表示できるファイル形式は結構前の記事ですがここに書かれていました。

  • Excel (.xls)
  • Keynote (.key.zip)
  • Numbers (.numbers.zip)
  • Pages (.pages.zip)
  • PDF (.pdf)
  • Powerpoint (.ppt)
  • Word (.doc)
  • Rich Text Format (.rtf)
  • Rich Text Format Directory (.rtfd.zip)
  • Keynote '09 (.key)
  • Numbers '09 (.numbers)
  • Pages '09 (.pages)

実装する

試しに実装してみました。まずは画面を実装します。UIWebView、UITextField、UIButtonを配置します。
UIWebViewのscalesPageToFitをYESにすると拡大縮小することができるようになります。

uiwebview-file2

ボタンをクリックした際の処理は以下の通りです。UITextFieldに入力したURLをUIWebViewでロードしているだけです。

- (IBAction)click:(id)sender
{
    NSURL *url =  [NSURL URLWithString:textField.text];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [webView loadRequest:request];
}

シミュレータで確認してみましたが問題なく表示されます。

uiwebview-file

まとめ

UIWebViewにこのような機能があるのを知らなかったので勉強になりました。
最新のOSではどうなっているのかはまだ分かりませんが、上記以外にOfficeの2007形式も表示できることは確認しています。

  • Word 2007(.docx)
  • Excel 2007(.xlsx)
  • Powerpoint 2007(.pptx)