【フロントエンド】Cordovaカスタムプラグイン開発手順(Androidベース)
前言
Cordovaの概要
Apache Cordovaはオープンソースのモバイル開発フレームワークです.標準的なwebテクノロジー-HTML 5、CSS 3、JavaScriptでプラットフォーム間開発を行うことができます.各プラットフォームでのアプリケーションの具体的な実行はカプセル化され、センサ、データ、ネットワーク状態など、標準的なAPIバインドに依存して各デバイスにアクセスする機能に依存する.
プロジェクトのため、Cordovaプラグインを独自に開発する必要があります.以下、ネット上の資料を調べてまとめます.
きほんかんきょう
まず基本的な環境を確保する必要があります.筆者の基本的な環境はこうです. Windows 10 x64 npm v3.10.10 node v6.11.2 Android Studio 2.2.3
cordovaのインストール
次にnpmを使用してcordovaをインストールします
テスト項目の作成
まずhelloプロジェクトを作成し、次のステップは公式サイトcordovaからのステップです.
Appの作成
プラットフォームの追加
その後、すべての後続コマンドがプロジェクトディレクトリ(helloディレクトリ)で実行されます.
Androidプラットフォームの追加
現在のプラットフォームの設定状況を確認します
Android Studioにプロジェクトをインポート Android Studio を開くメニューバーの「File」->「New」->「Import Project」 を選択「...helloplatformsandroid」ディレクトリ を選択導入完了 プラグインの開発
plumanのインストール
プラグインの作成
プラグインを作成するコマンドパラメータは次のとおりです. を作成する絶対パスまたは相対パスのディレクトリ のような追加の記述
次の例を示します.
上記の例を実行すると、現在のディレクトリの下にHelloPluginフォルダが生成されます.ディレクトリ構造は次のとおりです.
Javaの作成
仕様に基づいてプラグインを開発する必要があります.次に、
つまり、Javaの
修正
プラグインの追加
あとでプラグインを追加してテストできます
プラグインを削除する必要がある場合は、次の操作を行います.
Android Studioを見て、ファイルが追加されました.
プラグインの呼び出し
たとえば、次の場所に挿入します.
ボタンをクリックすると、オリジナルのToastがポップアップされます.
注意事項
次のエラーが発生した場合
解決策は、
参考資料最初のApp を作成
Cordovaの概要
Apache Cordovaはオープンソースのモバイル開発フレームワークです.標準的なwebテクノロジー-HTML 5、CSS 3、JavaScriptでプラットフォーム間開発を行うことができます.各プラットフォームでのアプリケーションの具体的な実行はカプセル化され、センサ、データ、ネットワーク状態など、標準的なAPIバインドに依存して各デバイスにアクセスする機能に依存する.
プロジェクトのため、Cordovaプラグインを独自に開発する必要があります.以下、ネット上の資料を調べてまとめます.
きほんかんきょう
まず基本的な環境を確保する必要があります.筆者の基本的な環境はこうです.
cordovaのインストール
次にnpmを使用してcordovaをインストールします
npm install -g cordova
テスト項目の作成
まずhelloプロジェクトを作成し、次のステップは公式サイトcordovaからのステップです.
Appの作成
cordova create hello com.example.hello HelloWorld
プラットフォームの追加
その後、すべての後続コマンドがプロジェクトディレクトリ(helloディレクトリ)で実行されます.
cd hello
Androidプラットフォームの追加
cordova platform add android --save
現在のプラットフォームの設定状況を確認します
cordova platform ls
Android Studioにプロジェクトをインポート
plumanのインストール
npm install -g plugman
プラグインの作成
プラグインを作成するコマンドパラメータは次のとおりです.
plugman create --name <pluginName> --plugin_id <pluginID> --plugin_version <version> [--path <directory>] [--variable NAME=VALUE]
:プラグイン名
:プラグインid
:バージョン
:オプション.プラグインアイテムvariable NAME=VALUE
:オプション.著者情報および関連記述次の例を示します.
plugman create --name HelloPlugin --plugin_id hello-plugin --plugin_version 0.0.1
上記の例を実行すると、現在のディレクトリの下にHelloPluginフォルダが生成されます.ディレクトリ構造は次のとおりです.
│ plugin.xml
│
├─src
└─www
HelloPlugin.js
Javaの作成
仕様に基づいてプラグインを開発する必要があります.次に、
HelloPlugin/src
ディレクトリの下にandroidフォルダを作成し、Hello.java
ファイルを新規作成します.内容と以下の通りです.package com.hello.toast;
import android.widget.Toast;
import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaPlugin;
import org.json.JSONArray;
import org.json.JSONException;
public class HelloPlugin extends CordovaPlugin {
private CallbackContext mCallbackContext;
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
this.mCallbackContext = callbackContext;
if ("coolMethod".equals(action)) {
String msg = args.getString(0);
Toast.makeText(cordova.getActivity(), msg, Toast.LENGTH_SHORT).show();
callbackContext.success("success");
return true;
}
mCallbackContext.error("error");
return false;
}
}
if ("coolMethod".equals(action))
は、HelloPlugin\www\HelloPlugin.js
のうちのexports.coolMethod
およびexec()
の方法の第4のパラメータに対応することに留意されたい.HelloPlugin
JavaクラスはHelloPlugin.js
ファイル名に対応します.つまり、Javaの
coolMethod
またはクラス名を変更したり、JSの対応する名前を変更したりする必要があります.そうしないと、Javaクラスやメソッドが見つからない可能性があります.HelloPlugin\www\HelloPlugin.js
の完全なコードは次のとおりです.cordova.define("hello-plugin.HelloPlugin", function(require, exports, module) {
var exec = require('cordova/exec');
exports.coolMethod = function (arg0, success, error) {
exec(success, error, 'HelloPlugin', 'coolMethod', [arg0]);
};
});
修正
plugin.xml
HelloPlugin/plugin.xml
ファイルを開き、ラベル
に次のコードを追加します.
...
"android">
<source-file src="src/android/HelloPlugin.java" target-dir="src/com/hello/toast"/>
"res/xml/config.xml" parent="/*">
"HelloPlugin">
"android-package" value="com.hello.toast.HelloPlugin"/>
プラグインの追加
あとでプラグインを追加してテストできます
cordova plugin add HelloPlugin
プラグインを削除する必要がある場合は、次の操作を行います.
cordova plugin remove HelloPlugin
Android Studioを見て、ファイルが追加されました.
プラグインの呼び出し
index.html
のどこかに次の文を挿入してテストします.index.html
はプロジェクトの作成時に自動的に生成されます.<Button onclick="cordova.plugins.HelloPlugin.coolMethod('Toast', null, null)">Show ToastButton>
たとえば、次の場所に挿入します.
...
<body>
<div class="app">
<h1>Apache Cordovah1>
<div id="deviceready" class="blink">
<p class="event listening">Connecting to Devicep>
<p class="event received">Device is Readyp>
div>
<Button onclick="cordova.plugins.HelloPlugin.coolMethod('Toast', null, null)">Show ToastButton>
div>
<script type="text/javascript" src="cordova.js">script>
<script type="text/javascript" src="js/index.js">script>
body>
...
ボタンをクリックすると、オリジナルのToastがポップアップされます.
注意事項
次のエラーが発生した場合
"Refused to execute inline event handler because it violates the following Content Security Policy directive: "default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'". Note that 'script-src' was not explicitly set, so 'default-src' is used as a fallback.
", source: file:///android_asset/www/index.html (47)
解決策は、
index.html
の第1行
を注釈することである.<html>
<head>
...
html>
参考資料