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

Cordovaの概要とハイブリッドアプリのメリット

asakahara
February 07, 2017

 Cordovaの概要とハイブリッドアプリのメリット

フロントエンド勉強会 in 山陰 #01の発表内容です。
Cordovaやその他のフレームワーク、ハイブリッドアプリのメリット&デメリットについて触れています。

asakahara

February 07, 2017
Tweet

More Decks by asakahara

Other Decks in Programming

Transcript

  1. $PSEPWBͱ͸ʁ w ϋΠϒϦουΞϓϦ͕։ൃͰ͖Δ 8FC7JFXΛ࢖༻  w )5.-$44+BWB4DSJQUͰ։ൃ w ωΠςΟϒϒϦοδͷఏڙ 1MVHJO΋ଟ͍

     w J04ɺ"OESPJEɺ8JOEPXT1IPOFͳͲ༷ʑͳϓϥο τϑΥʔϜʹରԠ w ೥͔Β࢝·Γɺݱࡏ΋׆ൃʹ։ൃ͕ߦͳΘΕ͍ͯΔ
  2. ϓϩδΣΫτͷ࡞੒ cordova create hello com.sonicmoov.hello cordova platform add android cordova

    platform add ios cordova platform list cordova build android cordova build ios
  3. σΟϨΫτϦߏ੒ ├── 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
  4. جຊͷϓϥάΠϯ w ୺຤ͷϞʔγϣϯݕ஌ϓϥάΠϯ w όοςϦʔ৘ใͷऔಘϓϥάΠϯ w Χϝϥૢ࡞ϓϥάΠϯ w ୺຤ͷΦϦΤϯςʔγϣϯݕ஌ϓϥά Πϯ

    w ωοτϫʔΫ৘ใͷऔಘϓϥάΠϯ w ୺຤৘ใͷऔಘϓϥάΠϯ w μΠΞϩάͷ੍ޚϓϥάΠϯ w ϑΝΠϧૢ࡞ϓϥάΠϯ w ϑΝΠϧసૹϓϥάΠϯ w Ґஔ৘ใͷऔಘϓϥάΠϯ w දهͷࠃࡍԽରԠϓϥάΠϯ w ϝσΟΞૢ࡞ϓϥάΠϯ w ϝσΟΞΩϟϓνϟʔϓϥάΠϯ w εςʔλεόʔͷ੍ޚϓϥάΠϯ w όΠϒϨʔγϣϯͷ੍ޚϓϥάΠ ϯ
  5. 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; } }
  6. ϓϥάΠϯͷݺͼग़͠ onDeviceReady: function() { cordova.exec(function() { console.log('ϓϥάΠϯݺͼग़͠ʹ੒ޭ͠·ͨ͠'); }, function() {

    console.log('ϓϥάΠϯݺͼग़͠ʹࣦഊ͠·ͨ͠'); }, 'TestPlugin', 'actionName', [‘Test Cordova plugin']); }
  7. ΧελϜ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); }
  8. ΧελϜ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; }