Swift MkMapView로 지도 프로그램 만들기 (22) - 브라우저 표시

문장 목록


Swift MkMapView로 지도 어플리케이션을 만들어 보았습니다(기사 일람).

브라우저 표시


WKWebView에서 브라우저 쉽게 표시


브라우저의 표시 영역 설정, 브라우저의 상태 취득, 조작을 활성화합니다.
브라우저 정의
import WebKit

class PointPopupViewController: UIViewController,WKNavigationDelegate, WKUIDelegate {

    var webView: WKWebView!

    override func viewDidLoad() {
        super.viewDidLoad()

        // ブラウザの表示領域を設定
        let rect = CGRect(x:0, y:230, width:width, height:height-230)
        let webConfiguration = WKWebViewConfiguration()
        webView = WKWebView(frame: rect, configuration: webConfiguration)

        // 読み込み開始、完了などの状態を取得できる様にする
        webView.navigationDelegate = self

        // back, forwardなどの操作メソッドを使用できる様にする
        webView.uiDelegate = self

  • WKNavigationDelegate(webView.navigationDelegate=self)에서 읽기 시작, 완성 등의 상태를 얻을 수 있습니다
  • WKUIDelegate(webView.uiDelegate=self)에서 백, 포워드 등 조작 방법을 사용할 수 있습니다
  • 구글 보기


    브라우저에 표시할 URL을 지정합니다.
    브라우저에 구글 보이기
            var url: String = "https://www.google.co.jp"
    
            // 日本語を含んだ文字列をURLやNSURLにするとnilになる対策
            let encodeUrl: String = url.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
            let webUrl = URL(string: encodeUrl)
            let myRequest = URLRequest(url: webUrl!)
            webView.load(myRequest)
    
            // インスタンスをビューに追加する
            self.view.addSubview(webView)
    

    반모드 보기에서 브라우저 보이기


    (21) - 주변 검색 위치를 반모드 뷰에 표시 반 모드에서 Google 검색에 표시되는 위치에 대한 조회를 추가합니다.
    구글의 검색 조건을 지정하여 브라우저 표시
            var url: String = "https://www.google.co.jp"
            url += "/search?q="
            url += appDelegate.walkViewController.getTapStreetAddr()
            url += "+"
            url += appDelegate.walkViewController.getTapPointTitle()
    
    이렇게 하면 반모드 보기는 다음과 같다.

    읽기 시작 및 완료 상태 가져오기


    읽기 시작, 완료 상태 가져오기
    back(<), forward(>) 버튼의 상태를 업데이트합니다.
    읽기 시작 및 완료 상태 가져오기
        // 読み込み開始
        func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!) {
            setEnableWebButton()
        }
    
        // Web読み込み完了
        func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
            setEnableWebButton()
        }
    
        // Web back/forwardボタンのisEnableを更新する
        func setEnableWebButton() {
            // カスタムの文字色で初期化
            let g = CGFloat(0x94) / 255
            let b = CGFloat(0xFE) / 255
            let strColor: UIColor = UIColor(red: 0, green: g, blue: b, alpha: 1.0)
    
            if webView.canGoBack {
                backBtn.isEnabled = true
                backBtn.setTitleColor(strColor, for: .normal)
            }
            else {
                backBtn.isEnabled = false
                backBtn.setTitleColor(UIColor.gray, for: .normal)
            }
    
            if webView.canGoForward {
                forwardBtn.isEnabled = true
                forwardBtn.setTitleColor(strColor, for: .normal)
            }
            else {
                forwardBtn.isEnabled = false
                forwardBtn.setTitleColor(UIColor.gray, for: .normal)
            }
        }
    
  • webView.canGoBack 에서 반환할 수 있는지 확인합니다
  • webView.canGoForward가 전진할 수 있는지 여부
  • back(<),forward(>) 단추 설치


    back forward 단추 구현
        // < ボタンを押下した時の処理
        @IBAction func btnBack(_ sender: Any)
        {
            if webView.canGoBack {
                webView.goBack()
            }
        }
    
        // > ボタンを押下した時の処理
        @IBAction func btnForward(_ sender: Any)
        {
            if webView.canGoForward {
                webView.goForward()
            }
        }
    

    좋은 웹페이지 즐겨찾기