.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

モバイルアプリのための万能ツールではなく、
ハイブリッドアプリを開発するためのフレームワーク。

経緯

PhoneGap?

PhoneGap?はCordovaベースのAdobe製品版。

サービス

以下の様なサービスも提供されている。

プラットフォーム

サポート

プラットフォームのすべての機能をサポートしているわけではない。

実機・エミュレーター

Androidアプリ

iOSアプリ

Windowsアプリ

開発

開発ツール

Cordova CLI

Node.js製コマンドライン開発ツール

IDE

だけ利用するでも開発可能だが、

Cordovaフレームワーク

cordova.js

devicereadyイベント

プラグインの利用

Cordovaフレームワークに組み込まれていたネイティブ機能も含め、
Cordova3.0からは、ネイティブ機能を提供するものはすべてプラグインとして管理されるようになっている。

プラグインのパッケージ

公式で提供されているプラグイン

#プラグイン名概要リポジトリのURL
1Accelerometer加速度センサhttps://git-wip-us.apache.org/repos/asf/cordova-plugin-device-motion.git
2Cameraカメラhttps://git-wip-us.apache.org/repos/asf/cordova-plugin-camera.git
3Captureカメラ・録音https://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture.git
4Compassコンパスhttps://git-wip-us.apache.org/repos/asf/cordova-plugin-device-orientation.git
5Connectionネットワーク接続https://git-wip-us.apache.org/repos/asf/cordova-plugin-network-information.git
6Contactsコンタクトhttps://git-wip-us.apache.org/repos/asf/cordova-plugin-contacts.git
7Deviceデバイス情報https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git
8Eventsイベントhttps://git-wip-us.apache.org/repos/asf/cordova-plugin-battery-status.git
9Fileファイルストレージhttps://git-wip-us.apache.org/repos/asf/cordova-plugin-file.git
10ファイルトランスファーhttps://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer.git
11Geolocation位置情報https://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation.git
12Globalization国際化https://git-wip-us.apache.org/repos/asf/cordova-plugin-globalization.git
13InAppBrowser?アプリ内ブラウザhttps://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser.git
14Media音声・動画https://git-wip-us.apache.org/repos/asf/cordova-plugin-media.git
15Notificationアラート・ダイアログhttps://git-wip-us.apache.org/repos/asf/cordova-plugin-dialogs.git
16バイブレーションhttps://git-wip-us.apache.org/repos/asf/cordova-plugin-vibration.git
17Splashscreenスプラッシュスクリーンhttps://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen.git

cordova pluginコマンドで管理

プロジェクト構造

#ファイル・フォルダ説明
1config.xml各プラットフォームに展開されるCordova用設定ファイル。
2wwwフォルダHTML5リソースやアプリ設定に関するファイルが格納される。
ルートフォルダに配置したHTMLファイルなどがアプリとして表示される。
3pluginsフォルダプラグインが格納されている。
4mergesフォルダHTML5側をプラットフォームごとに切り替える。
wwwディレクトリがプラットフォームごとにコンパイルされる際、
ここに格納されている各プラットフォーム特有のリソースがマージされる。
5platformsフォルダネイティブ側をプラットフォームごとに切り替える。
各プラットフォーム特有のプロジェクトファイルが格納される。

config.xml

#項目名概要
1widget・id:アプリの識別子
・version:バージョン番号
2nameアプリ名
3descriptionアプリの概要
4authorアプリの作成者
5contentアプリ起動時、最初にロードするコンテンツ(index.htmlなど)。
・外部のURL(http://・・・)で外部のコンテンツを表示できる。
・外部のURLの場合は、下記ホワイトリストの指定が必要。
6access・ホワイトリスト指定(http://aaa.bbb.comhttp://xxx.yyy.com)。
・*は制限なし。ドメイン指定も可能(http://*.xxxx.com)。
7preference実行時のフレームワークの挙動を設定。
・name:設定名
・value:設定値
8featureプラグインの有効化
9allow-intentURLSchemeで別アプリを起動する際に予め定義。
10platform特定のプラットフォームのみに反映する場合に利用

wwwフォルダ

以下の中身を読んで理解する。

pluginsフォルダ

Cordovaで利用するプラグインやその設定ファイルを格納する。

mergesフォルダ

HTML5側をプラットフォームごとに切り替える。

platformsフォルダ

ネイティブ側をプラットフォームごとに切り替える。

#項目名概要
1loadingDialogアプリの読み込み中に、ネイティブのロード中を表すダイアログ表示
2loadingPageDialog?HTMLページの読み込み中に、ネイティブのロード中を表すダイアログを表示
3errorUrlアプリのエラーページ(wwwディレクトリからの相対パス)
4backgroundColorアプリの背景色を指定
5loadUrlTimeoutValue?アプリの読み込みのタイムアウト値設定
6keepRunning・バックグラウンド実行の設定。
・trueかfalseを指定。デフォルトはtrue(バックグラウンドでも実行)。
7splashscreen・splashscreenの画像
・res/drawableディレクトリ以下・拡張子無し。
8disallowOverscroll (boolean, defaults to false):・オーバースクロール時の表現。
・trueかfalseを指定。デフォルトはfalse(表現しない)。
#項目名概要
1DisallowOverscroll?・オーバースクロール時の表現。
・trueかfalseを指定。デフォルトはfalse(表現しない)。
2TopActivityIndicator?・ステータスバーに表示されるインジケータの種類を設定。
・有効な値は、whiteLargeとwhiteとgray。デフォルトはgray。
3EnableViewportScale?・metaタグによるviewportのスケールの有効・無効。
・trueかfalseを指定。デフォルトはfalse(metaタグでスケールする)。
4AutoHideSplashScreen?・スプラッシュスクリーンを消すタイミングをJavaScriptから指定する・しない。
・trueかfalseを指定。デフォルトはtrue(JavaScriptから指定しない)。
%FadeSplashScreen?・スプラッシュスクリーンをフェードイン・フェードアウトさせるかどうか。
・trueかfalseを指定。デフォルトはtrue(フェードイン・フェードアウトさせる)。
6FadeSplashScreenDuration?・スプラッシュスクリーンのアニメーションの長さを秒数で指定。
・デフォルトは2。小数点も指定可能。
7ShowSplashScreenSpinner?・スプラッシュスクリーンの上にスピナー表示する・しない。
・trueかfalseを指定。デフォルトはtrue(スピナー表示する)。
8MediaPlaybackRequiresUserAction?・HTML5videoタグの自動再生を許可する・しない。
・trueかfalseを指定。デフォルトはfalse(自動再生を許可する)。
9AllowInlineMediaPlayback?・HTML5videoタグでのプレイバックを許可する・しない。
・HTML側のvideoタグ属性にwebkit-playsinlineの追加が必要。
・trueかfalseを指定します。デフォルトはfalse(自動再生を許可しない)。
10BackupWebStorage?・Webストレージのバックアップ場所を設定。
・noneとcloud(iCloud)とlocal(iTunes経由)のいずれかを指定。デフォルトはfalse(自動再生を許可しない)。
11KeyboardDisplayRequiresUserAction?JavaScriptのfocusメソッドで、ソフトウェアキーボードを表示する・しない。
・trueかfalseを指定。デフォルトはtrueです(表示しない)。
12SuppressesIncrementalRendering?・すべてのビューを受け取ってからアプリ内部のHTMLをレンダリングする・しない。
・trueかfalseを指定。デフォルトはfalse(すべてのビューを受け取ってからレンダリング)。
13HideKeyboardFormAccessoryBar?・ソフトウェアキーボードの上に表示されるツールバーを表示する・しない。
・trueかfalseを指定。デフォルトはfalse(表示する)。
14KeyboardShrinksView?・ソフトウェアの大きさに合わせてWebViewの高さを変更する・しない。
・trueかfalseを指定。デフォルトはfalse(変更しない)。
#ファイルのパスサイズ
1drawable-ldpi/icon.png36*36px
2drawable-mdpi/icon.png48*48px
3drawable-hdpi/icon.png72*72px
4drawable-xhdpi/icon.png96*96px
#ファイルのパスサイズ
1icon.png57*57px
2icon@2x.png114*114px
3icon-72.png72*72px
4icon-72@2x.png144*144px
#9-patchファイルのパスサイズ(縦*横)
1drawable-ldpi/splash.9.png426*320px
2drawable-mdpi/splash.9.png470*320px
3drawable-hdpi/splash.9.png640*480px
4drawable-xhdpi/splash.9.png960*720px
#pngファイルのパスサイズ(縦*横)
1Default-568h@2x~iphone.png640*1136px
2Default-Landscape~ipad.png1024*748px
3Default-Landscape@2x~ipad.png2048*1496px
4Default-Portrait~ipad.png768*1004px
5Default-Portrait@2x~ipad.png1536*2008px
6Default~iphone.png320*480px
7Default@2x~iphone.png640*960px

プラグイン開発

開発手順

ネイティブ・アクセス部分

方式

画面遷移

ブラウザの履歴

localのhtmlファイルに画面遷移

jQuery Mobile

認証

OAuth2/OIDC

OAuth2/OIDC以外

方式

以下のサイト情報から、2つの方式が確認できる。

SPA型

ローカルにある静的なHTMLとWebAPI(JSON)によって機能する。

Web型

Webアプリケーションの画面をホストする。

参考

Qiita

HTML5Experts.jp

Build Insider

第4章 Cordovaを用いたアプリ開発の流れ

第11章 JavaScriptとネイティブとのブリッジ

Cordova (PhoneGap)ではなく、WebViewの話題っぽい。


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS