[swift] UIwebviewにwebコンテンツを表示させる方法

目次

Swift4

Swift4でUIwebviewにwebコンテンツを表示させる方法は以下のコード

import Foundation
import UIKit

class WebViewController: UIViewController,UIWebViewDelegate{
 
 // MARK: IBOutlet
 @IBOutlet var backButton: UIButton!
 @IBOutlet var forwardButton: UIButton!
 @IBOutlet var reloadButton: UIButton!
 @IBOutlet var myWebView:UIWebView!
 
 

 // 戻るボタンの処理
 @IBAction func back(_: AnyObject) {
  self.myWebView?.goBack()
 }
 
 // 進むボタンの処理
 @IBAction func forward(_: AnyObject) {
  self.myWebView?.goForward()
 }
 
 // 再読み込みボタンの処理
 @IBAction func refresh(_: AnyObject) {
  self.myWebView?.reload()
 }
 
 
 // MARK: override
 override func viewDidLoad() {
 super.viewDidLoad()
 
 myWebView.delegate = self
 
 setup()
 }
 
 func setup(){
 
  let url: NSURL = NSURL(string: "URL")!
  let request: NSURLRequest = NSURLRequest(url: url as URL)
  myWebView.loadRequest(request as URLRequest)
 }
 
 //ページが読み終わったときに呼ばれる関数
 func webViewDidFinishLoad(_ webView: UIWebView) {
  self.backButton.isEnabled = self.myWebView!.canGoBack
  self.forwardButton.isEnabled = self.myWebView!.canGoForward
 
 }
 //ページを読み始めた時に呼ばれる関数
 func webViewDidStartLoad(_ webView: UIWebView) {
 
 }

}

 

 

Swift2

UIWebViewDelegate

viewControllerにUIWebViewDelegateを追加

class ViewController: UIViewController,UIWebViewDelegate {

実装

    @IBOutlet var myWebView:UIWebView!   
    override func viewWillAppear(animated: Bool) {
        myWebView.delegate = self
        let url: NSURL = NSURL(string: "[表示させたいURL]")!
        let request: NSURLRequest = NSURLRequest(URL: url)
        myWebView.loadRequest(request)
    }

    //ページが読み終わったときに呼ばれる関数
    func webViewDidFinishLoad(webView: UIWebView) {
    }
    //ページを読み始めた時に呼ばれる関数
    func webViewDidStartLoad(webView: UIWebView) {
    }

webViewが表示できるファイルの種類

webViewはhtmlだけでなく、下記ファイルも表示できる様子

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)

webViewのキャッシュクリア

webViewはキャッシュを使用するので、一度表示させたページは基本的にキャッシュから読み込む
キャッシュをクリアするには以下のコードを実装
毎回新しいコンテンツを表示させたい場合はviewDidLoadの下に実装するのがよいかも

NSURLCache.sharedURLCache().removeAllCachedResponses()

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です