解放区在住氷翠 緑の閃光
【解放区在住氷翠】氷翠のお気楽日記

Xcodeでブラウザ

2018-02-24

あ、はい、氷翠です。

Macでswift を使ったアプリケーション開発の勉強を続けています。

で、目的のアプリケーションを作るために必要な要素の一つとして、WEBの表示が欠かせない。

今回はとにかくブラウザを表示することを目的としたアプリケーションを作ってみた。

いつも通りXcodeにてコンポーネントを探してみるとブラウザに関するものが二つあった。

まずここで騙されたようだ。一つはiOS用のものでmacOSでは使えない。いや、使う方法があるのかもしれないけど使えないことにしておく。もう一つ、いくらアクセスしても表示されない。

これをしらべてみると、「http://」から始まるアドレスは表示できないようになっているらしい。なんらかの方法はあるだろうけど。

この解放区在住氷翠は「https://」から始まるアドレスなので表示が可能だ。

こんな感じです。

さて、肝心なのはプログラムの方ですが、これまた意外と簡単。

import Cocoa
import WebKit

class ViewController: NSViewController {

    @IBOutlet weak var wv: WebView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let url = URL(string: "https://k-icegreen.com/")
        let urlRequest = URLRequest(url: url!)
        
        wv.mainFrame.load(urlRequest)
        
        // Do any additional setup after loading the view.
    }

    override var representedObject: Any? {
        didSet {
        // Update the view, if already loaded.
        }
    }


}

まずは「import WebKit」でブラウザをコントロールするキットが必要です。ここでインポートしておきます。
基本的に氷翠は現在、「ViewController.swift」ファイルで作業しています。なので、ここで表示する直前のプログラムとして記述していっています。

で、当然ブラウザをコントロールするのだから、「@IBOutlet weak var wv: WebView!」で変数「wv」というものにフォームのコンポーネントとの繋がりをもたせてあげます。

表示するためのプログラムなので、「override func viewDidLoad()」この中で記述していきます。

「let url = URL(string: “https://k-icegreen.com/”)」はい、単純にアドレスを記述しています。
で、ここで重要なのは、「url」という変数は文字列の変数ではないということ。URLという型なのでしょう。よく見ると、括弧の中で文字列としてこのアドレスをURLとして扱いますよって言ってるようだ。

「let urlRequest = URLRequest(url: url!)」更にURLをリクエスト用のデータに変換しているのでしょう。

「wv.mainFrame.load(urlRequest)」はい、ここでアドレスを送信!
あ、えぇ、現在Swift4としてのプログラムなのです。もちろん、macosで扱うアプリケーションだということを忘れないように。
それもそのはず、iOSではやり方が違うので。

これで無事にブラウザとしての機能が揃いました。

次はHTMLの文字列をブラウザに表示させる方法です。これができないと意味がないw

コメントを残す

メールアドレスが公開されることはありません。