質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ionic

Ionicは、クロスプラットフォームに対応したモバイルアプリ開発のためのオープンソースUIフレームワークです。iOSやAndroid、Webのアプリケーションを1つのコードベースで開発できます。

Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

0回答

1577閲覧

cordovaについて

hide09090909

総合スコア68

Ionic

Ionicは、クロスプラットフォームに対応したモバイルアプリ開発のためのオープンソースUIフレームワークです。iOSやAndroid、Webのアプリケーションを1つのコードベースで開発できます。

Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2016/10/31 07:20

###前提・実現したいこと
cordovaでプラグインを自作し、javascriptから呼び出したいです。
アプリの流れは、アイコンをタップするとロゴ画像が表示され、2秒立つとオリジナルのtoastを表示するプラグインが呼び出されるというものです。

###発生している問題・エラーメッセージ
オリジナルのプラグインを作成したのですが、ロゴ画像が2秒以上表示されても、何も動きません。
config.xmlかplugin.xmlの設定にあまり自信がないので、ミスはその2つの可能性が高いと思っておりますが、自力では間違いがわかりません。
どなたか、わかる方はいらっしゃいますでしょうか?
もし、いらっしゃったら、教えてください。

↓プラグインの呼び出し

var app = { // コンストラクタ //initializeは初期化 initialize: function() { // alert("tesuto2"); this.bindEvents(); //alert("tesuto3"); }, bindEvents: function() { document.addEventListener('deviceready', this.onDeviceReady, false); //alert("tesuto4"); }, // deviceready Event Handler // onDeviceReady: function() { // alert("tesuto5"); //app.receivedEvent('deviceready'); // alert("tesuto6"); //カメラへのオプション // var options = { // quality: 50, //destinationType: navigator.camera.DestinationType.FILE_URI //}; //第一引数に成功時の処理、第二引数に失敗時の処理、第三引数にオプション //functionを使用する意味 setTimeout(function() { cordova.exec(function() { //成功時に呼ばれる関数 console.log('プラグイン呼び出しに成功しました'); }, function() { //失敗時に呼ばれる関数 console.log('プラグイン呼び出しに失敗しました'); //プラグイン名、呼び出すプラグインのアクション名、ネイティブ側に渡す配列 }, 'HelloWorld', 'showMessage', ['Hello my first Cordova plugin']); }, 2000); alert("tesuto6"); }, /*var options = { quality: 50, destinationType: navigator.camera.DestinationType.FILE_URI }; //カメラを起動する。 setTimeout(function (){navigator.camera.getPicture(function(imageData) { alert(imageData); }, function() { alert('fail'); }, options);},2000); }, */ //setTimeoutは第一引数に呼び出したい関数、第二引数に待機時間を設定する。2000=2秒 // Update DOM on a Received Event receivedEvent: function(id) { //document.getElementById(id);は指定の引数を持つ要素を返す。 var parentElement = document.getElementById(id); //セレクタにマッチする文章中の最初の要素を返す。 //セレクタとはスタイルを適用する対象のこと、CSS var listeningElement = parentElement.querySelector('.listening'); var receivedElement = parentElement.querySelector('.received'); //指定の要素に新しい属性を追加もしくは指定の要素に存在する値を変更する。 //第一引数に属性名、第二引数に変更したい値を入れる。 listeningElement.setAttribute('style', 'display:none;'); receivedElement.setAttribute('style', 'display:block;'); //console.logはコンソールにメッセージを出力させる関数。 console.log('Received Event: ' + id); } }; app.initialize();

↓プラグインの作成

// プラグインを格納している階層 package com.ionicframework.sample141782; //plugin.helloworld; import android.os.Bundle; import org.apache.cordova.*; import org.apache.cordova.CallbackContext; import org.apache.cordova.CordovaPlugin; import org.json.JSONArray; import org.json.JSONException; import android.app.AlertDialog; public class HelloWorld extends CordovaPlugin { //Toast.makeText(this, "Toast example", Toast.LENGTH_LONG).show(); @Override public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { if (action.equals("showMessage")) { String param = args.getString(0); this.showMessage(param); callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, "success!")); //callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.Error, "error!")); return true; } return false; } private void showMessage(String str) { //android.widget.Toast.makeText(this.cordova.getActivity(), str, 2000).show(); AlertDialog.Builder builder = new AlertDialog.Builder(this.cordova.getActivity()); builder.setTitle("title"); builder.setMessage(str); builder.setPositiveButton("OK", null); AlertDialog dialog = builder.create(); dialog.show(); } }

↓plugin.xml

<!--基本的なプラグインの情報--> <?xml version="1.0" encoding="UTF-8"?> <!-- id: プラグインの識別子、version: プラグインのバージョン --> <plugin xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android" id="cordova-plugin-helloworld" version="1.0.0"> <!-- プラグイン名 --> <name>HelloWorld</name> <!-- プラグインの説明 --> <description>This is a HelloWorld</description> <!-- キーワード --> <keywords></keywords> <!-- ライセンス,要素のコンテンツにプラグインのライセンスが含まれる。 --> <license>Hello</license> <!-- Android用の設定 --> <platform name="android"> <!-- Androidのconfig.xmlはここ→project/platform/android/res/xml/config.xmlにあるのでそこに反映するように --> <config-file target="res/xml/config.xml" parent="/*"> <!-- Cordovaはfeatureタグをみて、どのプラグインが有効か見る。以下の情報が上記のファイルに追加される。 --> <feature name="HelloWorld"> <param name="android-package" value="plugin.helloworld.HelloWorld"/> </feature> </config-file> <!-- Javaのソースファイル。 target-dir: ファイルがコンパイルされるべき場所 --> <!-- 以下だとproject/platform/android/src/plugin/helloworld/以下になる --> <source-file src="src/android/HelloWorld.java" target-dir="src/plugin/helloworld/"/> </platform> </plugin>

↓config.xml

<?xml version='1.0' encoding='utf-8'?> <widget id="com.ionicframework.sample141782" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> <name>sample</name> <description> An Ionic Framework and Cordova project. </description> <author email="you@example.com" href="http://example.com.com/"> Your Name Here </author> <content src="index.html" /> <access origin="*" /> <preference name="webviewbounce" value="false" /> <preference name="UIWebViewBounce" value="false" /> <preference name="DisallowOverscroll" value="true" /> <preference name="SplashScreenDelay" value="2000" /> <preference name="FadeSplashScreenDuration" value="2000" /> <preference name="android-minSdkVersion" value="16" /> <preference name="BackupWebStorage" value="none" /> <preference name="SplashScreen" value="screen" /> <feature name="StatusBar"> <param name="ios-package" onload="true" value="CDVStatusBar" /> </feature> <platform name="ios"> </platform> <platform name="android"> <icon density="ldpi" src="resources/android/icon/drawable-ldpi-icon.png" /> <icon density="mdpi" src="resources/android/icon/drawable-mdpi-icon.png" /> <icon density="hdpi" src="resources/android/icon/drawable-hdpi-icon.png" /> <icon density="xhdpi" src="resources/android/icon/drawable-xhdpi-icon.png" /> <icon density="xxhdpi" src="resources/android/icon/drawable-xxhdpi-icon.png" /> <icon density="xxxhdpi" src="resources/android/icon/drawable-xxxhdpi-icon.png" /> <splash density="land-ldpi" src="resources/android/splash/drawable-land-ldpi-screen.png" /> <splash density="land-mdpi" src="resources/android/splash/drawable-land-mdpi-screen.png" /> <splash density="land-hdpi" src="resources/android/splash/drawable-land-hdpi-screen.png" /> <splash density="land-xhdpi" src="resources/android/splash/drawable-land-xhdpi-screen.png" /> <splash density="land-xxhdpi" src="resources/android/splash/drawable-land-xxhdpi-screen.png" /> <splash density="land-xxxhdpi" src="resources/android/splash/drawable-land-xxxhdpi-screen.png" /> </platform> <plugin name="cordova-plugin-whitelist" spec="~1.3.0" /> <plugin name="cordova-plugin-splashscreen" spec="~4.0.0" /> <plugin name="cordova-plugin-statusbar" spec="~2.2.0" /> <!--プラグイン名--> <feature name="HelloWorld"> <!--paramは閉じなくて良い--> <param name="android-package" value="com.ionicframework.sample141782;" /> </feature> </widget>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問