Upgrade to Pro — share decks privately, control downloads, hide ads and more …

What's new WebKit.framework

What's new WebKit.framework

yashigani

June 21, 2014
Tweet

More Decks by yashigani

Other Decks in Technology

Transcript

  1. ϦϑΝϨϯε͔ΒಡΈղ͘
    WebKit.framework
    @yashigani

    Cocoaษڧձؔ੢ #56

    View Slide

  2. @yashigani

    View Slide

  3. View Slide

  4. View Slide

  5. View Slide

  6. –Mattt Thompson
    “UIWebView is dead. Long live
    WKWebView.”

    View Slide

  7. WKWebView is Կʁ

    View Slide

  8. WKWebViewͷਖ਼ମ
    • Safari/Mobile Safariͱಉ͡΋ͷ͕࢖͑Δ
    • ϞμϯͳΠϯλʔϑΣʔε
    • WebKit 2 APIϕʔε
    • ࣮͸UIWebView΍WebView͸ҧ͏API

    View Slide

  9. WebKit 2 API
    • ϚϧνϓϩηεʹରԠͨ͠API
    • WebKit 1ͱ͸ඇޓ׵
    • Safari 5.1(07/2011)~

    View Slide

  10. ࣮͸͜ͳ͍ͩൃදͨ͠
    • @kyoto.ͳΜ͔
    • WebKit 2 API͸CϕʔεͰʙͬͯ࿩΋ͨ͠
    • ՈؼͬͯϦϙδτϦݟͨΒͦΜͳ͜ͱͳͯ͘
    ݁ߏͪΌΜͱͯͨ͠
    • #expectWWDC

    View Slide

  11. ΊͰ͍ͨʂ

    View Slide

  12. WKWebView
    • iOS/OS XͰڞ௨
    • ϞμϯͳΠϯλʔϑΣʔε
    • property/delegate
    • Ϛϧνϓϩηε

    View Slide

  13. ߏ੒
    • WKWebView
    • WKUIDelegate
    • WKNavigationDelegate
    • WKWebViewConfiguration
    • WKPreferences
    • WKUserContentController

    View Slide

  14. WKWebView
    • Built-in Gesture
    • KVO compliant
    • title/URL/loading/estimatedProgress…
    • backForwardList
    • WKUIDelegate/WKNavigationDelegate

    View Slide

  15. WKUIDelegate
    • alert()ͷॲཧΛࣗલͰ
    • ࣗ෼Ͱॲཧͯ͠ɼcompletionHandlerΛݺͿ

    View Slide

  16. WKNavigationDelegate
    • shouldStart…/didFinish…
    • UIDelegateͱಉ༷ʹdecisionHandlerͰॲཧ
    • ϩʔυͷਐḿΛࡉ͔͘औಘͰ͖Δ

    View Slide

  17. WKWebViewConfiguration
    • WKPreferences/WKProcessPool/
    WKUserContentController
    • WKWebViewΛॳظԽ͢Δͱ͖ʹ౉͢
    • ෳ਺WKWebViewΛ࡞Δͱ͖ʹڞ༗Ͱ͖Δ

    View Slide

  18. WKPreferences
    • JavaScriptͷΦϯΦϑ
    • ϑΥϯταΠζ
    • ಈը࠶ੜΛΠϯϥΠϯͰ
    • ઃఆ͸User Defaultsʹอଘ͞ΕΔ

    View Slide

  19. WKUserContentController
    • ϩʔυ͢ΔUser Scriptͷ௥Ճ/࡟আ
    • User ScriptͷHandlerΛొ࿥
    • User Script͔ΒϝοηʔδΛૹΕΔ

    View Slide

  20. σϝϦοτ

    View Slide

  21. stringByEvaluatingJavaScriptFromString:
    ͕ແ͍

    View Slide

  22. View Slide

  23. ͡Ό͋Ͳ͏͠Ζͱ
    • User ScriptͰͳΜͱ͔͠Ζͱ͍͏͜ͱʁ
    • Easy app-webpage communication
    • ΋ͪΖΜΦʔϓϯͳ࣮૷ʹ͸͋Δ
    • evaluateJavaSctipt:completionHandler:
    • ৭ʑࢼ͚ͨ͠Ͳ… #࡯͍ͯͩ͘͠͞

    View Slide

  24. OS X͔Β͢Δͱ…
    • ΊͬͪΌऑମԽ
    • WebViewʹ͋Δdelegate͸΋ͬͱ͋Δ
    • WebFrameʹ΋ΞΫηεͰ͖ͳ͍͠…
    • ΋ͪΖΜJSContext΋࢖͑ͳ͍

    View Slide

  25. ٙ໰
    • લճͷWWDCͰJavaScriptCore.frameworkΛ
    ։์ͨ͠ҙਤ͕Θ͔Βͳ͍
    • ಛʹ࠷ۙ͸WebKitͷJSEngine͸͍͢͝վྑ
    ͞Ε͍ͯΔ
    • ϑΟʔυόοΫ࣍ୈͰ͸΋ͬͱ։์͞ΕΔՄ
    ೳੑ͕ʁ

    View Slide

  26. ·ͱΊ
    • UIWebView is dead. Long live WKWebView.
    • Ϛϧνϓϩηε+Ϟμϯ API
    • ࠓͷͱ͜Ζظ଴΄ͲͰ͸ͳ͍(ͱࢥ͏)
    • ͨͩ͠ྗΛೖΕ͍ͯΔͷ͸͔֬
    • ظ଴ͯ͠Δਓ͸Bug Reportʹཁ๬ग़ͦ͏ʂ

    View Slide

  27. ؔ࿈
    • http://www.webkit.org
    • https://github.com/webkit/webkit
    • Introducing the Modern WebKit API
    • http://nshipster.com/ios8/

    View Slide

  28. Thank you!

    View Slide