Introduction to WebKitPlus at potatotips #16. Check it!!! -> https://github.com/yashigani/WebKitPlus
8,8FC7JFXΛγϡοͱ͏@yashiganipotatotips #16
View Slide
yashiganiid:yashigani_w @yashiganiMobile Application Engineerhttp://yashigani.hatenablog.comHatena
8,8FC7JFX
6*8FC7JFXJTEFBE-POHMJWF8,8FC7JFXʕ.BUUU5IPNQTPO /4)JQTUFS
ෆຬ
target="_blank"• func webView(_:createWebViewWithConfiguration: forNavigationAction:windowFeatures:) ->WKWebView!• ৽͘͠։͘WKWebViewΛ࡞ͬͯฦ͢• nilΛฦͯͦ͠ͷWebViewͰϩʔυ͠ͳ͍
func webView(webView: WKWebView,createWebViewWithConfiguration:WKWebViewConfiguration,forNavigationAction:WKNavigationAction,windowFeatures: WKWindowFeatures)-> WKWebView? {let request =forNavigationAction.requestwebView.loadRequest(request)return nil}
alertͷදࣔ• alert, confirm, prompt• js͔Βͷཁٻʹ߹ΘͤͯΞϥʔτΛදࣔ͢Δ• ok, ok/cancel, textfield• ΄ͱΜͲఆܗ
R.I.P. KVO• KVOͰ͖ΔϓϩύςΟ͕૿͑ͨ͜ͱࣗମ͏Ε͍͠• swift࣌ʹ͓͍ͯॻ͖ͨ͘ͳ͍• closureͰobserveͤͯ͞ཉ͍͠
storyboardʹஔ͚ͳ͍• IBͷObject libraryʹWKWebViewແ͍• storyboardͱίʔυΛΈ߹ΘͤͨΓɼίʔυͷΈͰ࣮͢Δඞཁ• WebViewग़͍͚ͨͩ͠ɼΈ͍ͨͳը໘ʹ ͞΄ͲίετΛ͔͚ͨ͘ͳ͍
https://flic.kr/p/5beGncશવγϡοͱͯ͠ͳ͍
8FC,JU1MVTIUUQTHJUIVCDPNZBTIJHBOJ8FC,JU1MVT
• WKWebViewͷ͔Ώ͍ͱ͜ΖΛཱͪͲ͜Ζʹղܾ• Carthage/CocoaPodsͰಋೖͰ͖Δ
8,6*%FMFHBUF1MVT
• target=“_blank”ͷϫʔΫΞϥϯυΛ࣮• ͪΖΜ߹ʹΑͬͯผͷWKWebViewʹ ࠩ͠ସ͑Δ͜ͱՄೳ• alert/confirm/promptͷॲཧΛ࣮
lazy var UIDelegate =WKUIDelegatePlus(self)override public func viewDidLoad(){super.viewDidLoad()webView.UIDelegate = UIDelegate}
8FC7JFX0CTFSWFS
• WKWebViewͷKVO compliantͳpropertyΛɼclosureͰobserveͰ͖ΔΑ͏ʹαϙʔτ
lazy var observer =WebViewObserver(self.webView)override public func viewDidLoad(){super.viewDidLoad()observer.onTitleChanged ={ [weak self] inself?.title = $0 }observer.onProgressChanged ={ [weak self] inself?.progressbar.progress = $0}}
;FO8FC7JFX$POUSPMMFS
• WKWebViewΛ࣋ͬͨView Controller• Zen = “ષ”• WKWebViewૢ࡞ͷͨΊͷIBAction• goBack/goForward/reload/stopLoading• WKUIDelegatePlus, WebViewObserverΛ࣮• storyboard͔Β͑Δͧʂʂʂ
8FC,JU1MVTͰ8,8FC7JFXΛγϡοͱ͓͏
͋Γ͕ͱ͏͍͟͝·ͨ͠