【Swift】文字列をURLに変換し、たった1行で開く方法

 

完成図

 

f:id:nekokichi_yos2:20181230235419p:plain

 

解説

  

WebViewを経由することなくsafari経由でURLを開ける。

 

WebViewの場合は、

 

    //URLを受け取る変数
    let url = URL(string: url_word)
    let urlrequest = URLRequest(url: url!)
    webview.loadRequest(urlrequest)

 

と記述で実装できる。

 

どっちがオススメで利用されているかは不明。

 

また、http://やhttps://以外のURLはエラー回避のためにprefixを使用した。

 

ソースコード

 

import UIKit

class openURLLink: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()

        //リンク(文字列)先を開く
        openURL("http://www.google.co.jp/")
    }
    
    func openURL(_ link:String) {
        //linkが"http://","https://"のいずれかで始める文字列かを判断
        //prefix(i):i文字目までの文字・・・prefix(3)は3文字目まで
        if link.prefix(7) == "http://" || link.prefix(8) == "https://" {
            //文字列をURLに変換
            let url = URL(string: link)!
            //URLを開く
            if UIApplication.shared.canOpenURL(url) {
                UIApplication.shared.open(url)
            }
        } else {}
    }

}