![【解放区在住氷翠】氷翠のお気楽日記 【解放区在住氷翠】氷翠のお気楽日記](https://k-icegreen.com/wp-content/themes/mki009/images/title_diary.jpg)
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
コメントを残す