Slide 1

Slide 1 text

$PSEPWBͷ֓ཁͱ ϋΠϒϦουΞϓϦͷϝϦοτ ϑϩϯτΤϯυษڧձJOࢁӄ גࣜձࣾιχοΫϜʔϒ ࡔݪ໌༟

Slide 2

Slide 2 text

ࡔݪ໌༟ 5XJUUFS*%!BTBLBIBSB ϒϩάIUUQTBLBIBSBIBUFOBCMPHKQ w લ৬͸ژ౎ͰJ04ΤϯδχΞ w ೥݄͔ΒιχοΫϜʔϒͷΤϯδχΞ w ޿ౡ ஍ݩ ژ౎ౡࠜ

Slide 3

Slide 3 text

גࣜձࣾιχοΫϜʔϒ w ສਓҎ্͕༡ͿιʔγϟϧήʔϜͷاը։ ൃӡ༻ w )5.-ͰಈըΛ഑৴͢ΔHVJMF w 8FCαʔϏεʗεϚʔτϑΥϯΞϓϦ։ൃ w σβΠϯɾΠϥετ੍࡞

Slide 4

Slide 4 text

ιχοΫϜʔϒౡࠜࣄۀॴ w ೥݄͔Β։ઃ w দߐӺ͔ΒंͰ෼ఔ౓ͷࢁͷ্ʹ͋ΔΦ ϑΟε w ݱࡏ͸ΤϯδχΞ໊͕̐ಇ͍ͯΔ

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

ࠓ೔࿩͢͜ͱ w $PSEPWBͱͦͷଞͷϑϨʔϜϫʔΫʹ͍ͭͯ w $PSEPWBͷ࢖͍ํΛܰ͘঺հ w ϋΠϒϦουΞϓϦΛ࡞Δࡍʹߟྀ͢Δ͜ͱ

Slide 9

Slide 9 text

ϋΠϒϦουΞϓϦͱ͸ʁ w ωΠςΟϒΞϓϦͱ8FCΞϓϦΛֻ͚߹Θͤͨ΋ͷ w 8FCΞϓϦͰ͸࢖༻Ͱ͖ͳ͍୺຤ͷػೳΛ࢖͑Δ w ΞϓϦͱͯ͠4UPSFʹެ։Ͱ͖Δ

Slide 10

Slide 10 text

+4ΛϥϯλΠϜͰಈ͔͠ωΠςΟϒ ίʔυΛϒϦοδ͢ΔλΠϓ w 3FBDU/BUJWF w /BUJWF4DSJQU w 5JUBOJVN4%,

Slide 11

Slide 11 text

8FC7JFXΛ࢖͏λΠϓ w $PSEPWB 1IPOF(BQ w *POJD w .POBDB 7JTVBM4UVEJP΋$PSEPWBΛαϙʔτ

Slide 12

Slide 12 text

$PSEPWBͱ͸ʁ w ϋΠϒϦουΞϓϦ͕։ൃͰ͖Δ 8FC7JFXΛ࢖༻ w )5.-$44+BWB4DSJQUͰ։ൃ w ωΠςΟϒϒϦοδͷఏڙ 1MVHJO΋ଟ͍ w J04ɺ"OESPJEɺ8JOEPXT1IPOFͳͲ༷ʑͳϓϥο τϑΥʔϜʹରԠ w ೥͔Β࢝·Γɺݱࡏ΋׆ൃʹ։ൃ͕ߦͳΘΕ͍ͯΔ

Slide 13

Slide 13 text

$PSEPWBͷϝϦοτ w )5.-$44+BWB4DSJQU͚ͩͰ͋Δఔ౓։ൃ Ͱ͖Δ w 8FC7JFXͷ࣮૷ͳͲϓϥοτϑΥʔϜຖͷࠩҟ Λٵऩ w ϓϥάΠϯΛ࢖͏͜ͱͰωΠςΟϒ΁ͷϒϦοδ ͕༰қʹͰ͖Δ w ΫϩεϓϥοτϑΥʔϜ

Slide 14

Slide 14 text

$PSEPWBͷσϝϦοτ w ୺຤ͷੑೳΛϑϧʹར༻͠ʹ͍͘ 8FC7JFXͰ ࣮ߦ͞ΕΔͨΊ w ݱঢ়ͷ)5.-Ͱ࣮ݱ͢Δʹ͸೉͍͠ػೳ͕͋ Δ %ήʔϜͳͲ w ωΠςΟϒΞϓϦΑ͏ͳඪ४ͷ6*ίϯϙʔωϯ τ͕ͳ͍ͷͰɺଞͷϥΠϒϥϦͰิ͏ඞཁ͋Γ

Slide 15

Slide 15 text

$PSEPWBͷಋೖ w ࣄલʹ"OESPJE4UVEJPɺ9DPEFΛΠϯετʔ ϧ͓ͯ͘͠ w $PSEPWBͷಋೖ͸ԼهίϚϯυͷΈͰ׬ྃ sudo npm install -g cordova

Slide 16

Slide 16 text

ϓϩδΣΫτͷ࡞੒ cordova create hello com.sonicmoov.hello cordova platform add android cordova platform add ios cordova platform list cordova build android cordova build ios

Slide 17

Slide 17 text

ϓϩδΣΫτͷ࣮ߦ cordova emulate android cordova emulate ios cordova run android cordova run ios cordova serve

Slide 18

Slide 18 text

σΟϨΫτϦߏ੒ ├── config.xml ├── hooks │ └── README.md ├── platforms │ ├── android │ ├── ios │ └── platforms.json ├── plugins │ ├── android.json │ ├── cordova-plugin-whitelist │ ├── fetch.json │ └── ios.json └── www ├── css ├── img ├── index.html └── js

Slide 19

Slide 19 text

جຊͷϓϥάΠϯ w ୺຤ͷϞʔγϣϯݕ஌ϓϥάΠϯ w όοςϦʔ৘ใͷऔಘϓϥάΠϯ w Χϝϥૢ࡞ϓϥάΠϯ w ୺຤ͷΦϦΤϯςʔγϣϯݕ஌ϓϥά Πϯ w ωοτϫʔΫ৘ใͷऔಘϓϥάΠϯ w ୺຤৘ใͷऔಘϓϥάΠϯ w μΠΞϩάͷ੍ޚϓϥάΠϯ w ϑΝΠϧૢ࡞ϓϥάΠϯ w ϑΝΠϧసૹϓϥάΠϯ w Ґஔ৘ใͷऔಘϓϥάΠϯ w දهͷࠃࡍԽରԠϓϥάΠϯ w ϝσΟΞૢ࡞ϓϥάΠϯ w ϝσΟΞΩϟϓνϟʔϓϥάΠϯ w εςʔλεόʔͷ੍ޚϓϥάΠϯ w όΠϒϨʔγϣϯͷ੍ޚϓϥάΠ ϯ

Slide 20

Slide 20 text

ΧελϜϓϥάΠϯ "OESPJE SFTYNMDPOpHYNMΛฤू

Slide 21

Slide 21 text

5FTU1MVHJOΫϥεͷ࣮૷ public class TestPlugin extends CordovaPlugin { @Override public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { callbackContext.success(); android.widget.Toast.makeText( this.cordova.getActivity(), args.getString(0), 2000).show(); return true; } }

Slide 22

Slide 22 text

ϓϥάΠϯͷݺͼग़͠ onDeviceReady: function() { cordova.exec(function() { console.log('ϓϥάΠϯݺͼग़͠ʹ੒ޭ͠·ͨ͠'); }, function() { console.log('ϓϥάΠϯݺͼग़͠ʹࣦഊ͠·ͨ͠'); }, 'TestPlugin', 'actionName', [‘Test Cordova plugin']); }

Slide 23

Slide 23 text

$PSEPWBΛ࢖Θͳ͍ ωΠςΟϒͱͷϒϦοδ w BEE+BWBTDSJQU*OUFSGBDFํࣜ "OESPJE w ωΠςΟϒ͔Β௚઀+BWB4DSJQUΛ࣮ߦ͢Δ w ΧελϜ63-ํࣜ w ϩʔΧϧ)551αʔόΛ্ཱͪ͛Δ

Slide 24

Slide 24 text

ωΠςΟϒ͔Β+4Λ࣮ߦ͢Δ J04ͷ৔߹ [webView evaluateJavaScript:@"createBook()"] completionHandler:^(id response, NSError *error) { if (response) { NSLog(@"bookId: %@", response); } }];

Slide 25

Slide 25 text

ωΠςΟϒ͔Β+4Λ࣮ߦ͢Δ "OESPJEͷ৔߹ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { view.evaluateJavascript( “javascript:createBook()", null); } else { view.loadUrl("javascript:createBook()"); }

Slide 26

Slide 26 text

ΧελϜ63-ํࣜ J04ͷ৔߹ - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^) (WKNavigationActionPolicy))decisionHandler { NSURL *url = navigationAction.request.URL; if ([url.scheme isEqualToString:@"sample"]) { // ωΠςΟϒͷॲཧ decisionHandler( WKNavigationActionPolicyCancel); return; } decisionHandler(WKNavigationActionPolicyAllow); }

Slide 27

Slide 27 text

ΧελϜ63-ํࣜ "OESPJEͷ৔߹ webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { Uri uri = Uri.parse(url); if (uri.getScheme().equals("sampleapp")) { // ωΠςΟϒͷॲཧΛݺͼग़͢ return true; } return false; }

Slide 28

Slide 28 text

ϋΠϒϦουΞϓϦΛ ։ൃ͢Δࡍͷ஫ҙ఺ w Bλά΍DMJDLΠϕϯτΛͦͷ··࢖Θͳ͍ w λοϓ࣌ͷϋΠϥΠτΛফ͢ w ௕ԡ͠Ͱදࣔ͞ΕΔϙοϓΞοϓϝχϡʔΛফ͢

Slide 29

Slide 29 text

ϋΠϒϦουΞϓϦΛ ։ൃ͢Δࡍͷ஫ҙ఺ ଓ͖ w Ϣʔβʔ͕จࣈΛબ୒Ͱ͖ͳ͍Α͏ʹ͢Δ w ίϯςϯπͷҰ෦ʹଦੑεΫϩʔϧΛೖΕΔ w %0.πϦʔʹՃ͑ΔมߋΛݮΒ͢ ࠶ඳࣸͷί ετ

Slide 30

Slide 30 text

ͳͥBλά΍DMJDLΠϕϯτΛ ͦͷ··࢖Θͳ͍ํ͕Α͍ͷ͔ʁ w λονΠϕϯτͷॲཧ͔ΒൃՐ·ͰʹϛϦඵͷ஗ Ԇ͕ൃੜ w ϒϥ΢β͕μϒϧΫϦοΫ͔൑ผ͢ΔͨΊͷ଴ػ࣌ؒ w ରԠࡦͷҰͭͱͯ͠'BTU$MJDLΛ࢖͏͜ͱͰҙࣝ͢Δ ͜ͱͳ͘ΠϕϯτͷൃՐΛૣΊΒΕΔ

Slide 31

Slide 31 text

·ͱΊ w ΞϓϦͷཁ݅ʹΑͬͯ͸ϋΠϒϦουΞϓϦͷํ͕ ޻਺ͷ࡟ݮ΍ɺΫϩεϓϥοτϑΥʔϜͰͷఏڙ΋ ͠΍͍͢ w $PSEPWBΛཪͰ࢖͍ͬͯΔ։ൃ؀ڥ΋͍͔ͭ͋͘ ΔͷͰɺ6*ͷίϯϙʔωϯτ΋ؚΊͨޮ཰త΋Մೳ w ৘ใ΋ൺֱతଟ͘8FCͷٕज़Λத৺ʹ։ൃͰ͖Δ ͷͰɺॳ৺ऀʹ΋͓͢͢Ί

Slide 32

Slide 32 text

࠷ޙʹ

Slide 33

Slide 33 text

ౡࠜʹڵຯ͕͋Δ ΤϯδχΞͷํΛืूͯ͠·͢

Slide 34

Slide 34 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ