--- title: Swift3のネイティブアプリとJavascriptの通信 tags: swift3 author: HavenSpring slide: false --- #Javascript作成 適当にサーバーに配置 ```html:communication.html

Swift3のネイティブアプリとJavascritpの通信

``` #Swift ViewController Swiftソース ```swift:ViewController.swift import UIKit class ViewController: UIViewController , UIWebViewDelegate{ @IBOutlet weak var web: UIWebView! override func viewDidLoad() { super.viewDidLoad() //LocalサーバーURL let url = URL(string: "http://192.168.11.11") //#を追加した文字列はwindow.location.hashから取得できる let insertUrl = URL(string: "#HelloJavascrpt", relativeTo: url) let urlRequest = URLRequest(url: insertUrl!) web.delegate = self web.loadRequest(urlRequest) } func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool { if let scheme = request.url?.scheme { if scheme == "fromjavascript" { //Javascriptのメッソドを呼び出す web.stringByEvaluatingJavaScript(from: "fromSwift()") return false } } return true } } ``` #実行結果 #HelloJavascript文字列はSwiftから送られた文字列 スクリーンショット 2017-03-11 13.03.53.png ##Swiftにイベント送信クリック後、Swiftからjavascriptメッソド呼び出す スクリーンショット 2017-03-11 13.04.07.png