.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

各種プラグインの追加

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

Whitelist

既定では、

  • ホワイトリストで指定した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
    https://github.com/phonegap/phonegap-plugin-push
    • プッシュ通知では、おそらく最も利用されている、古くからあるプラグイン。
    • v1:2015年と、v1ではGCM(Google Cloud Messeaging)を使用していたが、
    • v2:2019年4月のGCM廃止に伴い、後継のFCM(Firebase Cloud Messeaging)に対応
  • cordova-plugin-firebase
    https://github.com/arnesson/cordova-plugin-firebase
    • 利用実績は上記に及ばないものの、こちらもそこそこ人気のあるプラグイン。
    • v1が2018年4月と、新しいプラグインで、FCM対応で開発されている。
    • イベントトラッキング、クラッシュレポート等の分析情報をアプリに送信する機能を有する。

プッシュ通知受信処理の実装

地理位置情報

位置情報サービスと連携

プラグイン

cordova-plugin-geolocation

参考

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

プラグイン

cordova-plugin-code-push

参考

参考


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-02-27 (木) 12:30:37 (37d)