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

目次

概要

Cordova - Pluginの利用と開発

利用

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

プラグインのパッケージ

  • プラグインに関する情報
  • JavaScriptインターフェイス
  • 各プラットフォーム向けのネイティブコード
    • Android:Java
    • iOS:Objective-C
  • 依存関係

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

#プラグイン名概要リポジトリの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コマンドで管理

結果は、config.xmlに反映される。

一覧

cordova plugin ls

追加

cordova plugin add リポジトリのURL

削除

cordova plugin rm org.apache.cordova.core.camera(プラグインの識別子)

反映

config.xmlからPrepareコマンド
必要なファイルを(指定)プラットフォームにコピーする。

cordova prepare -d

この動作はカナリ複雑で、

  • Androidプロジェクト、Xcodeプロジェクトの設定や、
  • プラグインのネイティブコード、JavaScriptが、

platformsフォルダに出力される。

開発

プロジェクトを作成する。

Androidの場合、

platforms/android

iOSの場合、

platforms/iOS

ネィティブ側を実装

Androidの場合、

  • Java
  • CordovaPlugin?クラスを継承し、executeメソッドに実装

iOSの場合、

  • Objective-C

JavaScript側を実装

  • HTML5側に公開するインターフェイスを実装。
  • cordova.execメソッドを呼び出すと、
    Cordovaフレームワークに実装されるブリッジ機構によりプラグインを呼び出される。
    cordova.exec(<successFunction>, <failFunction>, <service>, <action>, [<args>]);
    #名前概要
    1<successFunction>呼び出し成功時に実行される関数
    2<failFunction>呼び出し失敗時に実行される関数
    3<service>config.xmlに追加したプラグイン名
    4<action>呼び出すプラグインのアクション名
    5<args>ネイティブ側に引数として渡す配列。JSON化できるもののみを渡す

Androidの場合、

CordovaPlugin?.executeメソッド(のOverrideメソッド)が呼び出される。

iOSの場合、

・・・

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

プラグインの種類

標準的プラグイン

既定で有効

  • cordova-plugin-whitelist

各種プラグインの追加

  • cordova-plugin-inappbrowser
  • cordova-plugin-customurlscheme
  • cordova-universal-links-plugin

その他のプラグイン

既定で有効

各種プラグインの追加

  • phonegap-plugin-push
  • cordova-plugin-geolocation
  • cordova-plugin-code-push

各種プラグインの追加

リンクを外部ブラウザで開く

既定では、

  • ホワイトリストで指定したURL以外は表示できない。
  • httpが無いとWebView内部で開き、httpが有ると外部ブラウザで開く。
  • InAppBrowser?は必須でないが、提供元不明コンテンツを読み込む場合に使用すると良い。
    • InAppBrowser?にホワイトリストは適用されない。
    • 新規にInAppBrowser?ウィンドウが開く。
    • 標準の Web ブラウザと同じ動作をするが、Cordova API へアクセスできない。

参考

外部ブラウザからNativeに遷移

cordova-plugin-customurlscheme

Private-Use URI Scheme Redirectionのために
「cordova-plugin-customurlscheme」というpluginが利用できるが、
「Private-Use URI Scheme上書き攻撃」があるので、OAuth PKCEを使用する必要がある。

cordova-universal-links-plugin

参考

  • Cordova tips - Custom URL scheme に対応させよう | phiary
    http://phiary.me/cordova-tips-custom-url-scheme/
    • pluginを追加する。
      cordova plugin add cordova-plugin-customurlscheme --variable URL_SCHEME=hoge --save
    • urlを受け取る。
      function handleOpenURL(url) {  
        setTimeout(function() {
          alert("received url: " + url);
        }, 0);
      }
  • 上記のvalue部に大文字を指定すると上手く動かないので要注意。

プッシュ通知

プッシュ通知サービスと連携

  • phonegap-plugin-push

参考

地理位置情報

位置情報サービスと連携

  • cordova-plugin-geolocation

参考

審査不要のコード差し替え

以下が必要。

  • cordova-plugin-code-push
  • Microsoft AppCenter?

参考

参考


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-12-21 (金) 15:22:42 (88d)