Help us understand the problem. What is going on with this article?

SwiftでUiWebViewを使ってアプリ内ローカルHTMLを表示する。

More than 5 years have passed since last update.

Webサイトを表示させるときにはUiWebViewを使うのは一般的だと思うのですが、アプリ内にHTMLファイルを設置して、それを参照するやり方が分からなかったので調べましたメモです。

SwiftでWebViewを利用する

Web上のページを表示させる場合

まずは普通にWebサイトを表示してみます。 targetURLにhttp://〜のurlを書きます。

//
//  ViewController.swift
//  sblig_gps
//
//  Created by 菅原 遼介 on 2014/12/04.
//  Copyright (c) 2014年 n0bisuke. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var uiwebview: UIWebView!
    var targetURL = "http://liginc.co.jp"

    override func viewDidLoad() {
        super.viewDidLoad()
        loadAddressURL()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func loadAddressURL() {
        let requestURL = NSURL(string: targetURL)
        let req = NSURLRequest(URL: requestURL)
        uiwebview.loadRequest(req)
    }


}

ローカルhtmlファイルを参照する場合

アプリ内のViewController.swiftと同階層のindex.htmlを参照する場合

NSBundle.mainBundle().pathForResource("index", ofType: "html");

と書きます。

//
//  ViewController.swift
//  sblig_gps
//
//  Created by 菅原 遼介 on 2014/12/04.
//  Copyright (c) 2014年 n0bisuke. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var uiwebview: UIWebView!
    var targetURL = NSBundle.mainBundle().pathForResource("index", ofType: "html");

    override func viewDidLoad() {
        super.viewDidLoad()
        loadAddressURL()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func loadAddressURL() {
        let requestURL = NSURL(string: targetURL!)
        let req = NSURLRequest(URL: requestURL)
        uiwebview.loadRequest(req)
    }


}


n0bisuke
プロトタイピング専門スクール「プロトアウトスタジオ」で教えたりしてます。 プロフ -> https://dotstud.io/members/n0bisuke
https://protoout.studio
dotstudio
全ての人がモノづくりを楽しむ世界を目指して活動しています。
https://dotstud.io
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away