カテゴリーアーカイブ iOS

村上 著者:村上

【Cordova】アプリでiBeaconを扱うための「cordova-plugin-ibeacon」が動作しない【未解決】

今回は、「cordova-plugin-ibeacon」という、CordovaアプリでiBeaconを取り扱うためのプラグインについてです。
Android端末では思い通りに動作したのですが、何故かiOSでは、ビーコンの信号をキャッチできず…。
色々サイトを見て、設定等を変更しているのですが、残念ながら、まだ未解決です。

 

使用したプラグインはこちらから確認できます。

GitHub – petermetz/cordova-plugin-ibeacon: An iBeacon plugin for Phonegap / Cordova 3.x and upwards. Supports both iOS and Android (contributions are welcome)
https://github.com/petermetz/cordova-plugin-ibeacon

で、実際に記述したコードはこちら。

var uuid = '[使用するビーコンのUUIDを指定]';
var identifier = 'ibeacon';
var major = 0;
var minor = 0;
var beaconRegion = null;
// 監視するビーコンの設定
beaconRegion = new cordova.plugins.locationManager.BeaconRegion(identifier, uuid, major, minor);
    
// delegateの作成と設定
var delegate = new cordova.plugins.locationManager.Delegate();
delegate.didStartMonitoringForRegion = function(pluginResult) {
    // ビーコンの観測の開始に成功
};

delegate.didDetermineStateForRegion = function(pluginResult) {
    // 領域への入退場のステータス変化を検知
};

delegate.didEnterRegion = function(pluginResult) {
    // ビーコンをキャッチした時に呼ばれる
    cordova.plugins.notification.local.schedule({
        title: "iBeacon",
        text: "didEnterRegion",
        foreground: true
    });
};

delegate.didRangeBeaconsInRegion = function(pluginResult) {
    // ビーコンを検知している間呼ばれる
};

// delegate の設定
cordova.plugins.locationManager.setDelegate(delegate);

// パーミッションチェック
cordova.plugins.locationManager.requestAlwaysAuthorization();
cordova.plugins.notification.local.requestPermission();
cordova.plugins.backgroundMode.enable();

// 監視の開始
cordova.plugins.locationManager.startMonitoringForRegion(beaconRegion)
    .fail(function(e) { })
    .done();
}

19行目で、ビーコンが発信している信号をキャッチしたら、通知を飛ばす、という処理を行いたかったのですが、これが動作せず…。
もしや、通知の設定が間違っているのか?と思い、別の箇所で動作確認をしたところ、問題なく動作したので、通知の問題ではなさそう。

また、11行目や15行目の関数内でも、試しに通知の処理を記述して見ましたが、こちらでも問題なく通知がされたので、プラグインにも問題はないようです。
ただ、15行目のビーコンの通知領域への入退場ステータス変化を検知した時に実行される関数では、引数 pluginResult.state が「CLRegionStateOutside(通知範囲から退場)」しか取れていないようだったのが気にかかっています。
どうやら範囲内に入った検知が行えていないようで…でも、その対処法がわからず、悩み続けております。

 

GitHubに、おそらく同じことでお悩みの方の投稿があったので見てはいるのですが、それでも解決できず。
ちなみに投稿はこちら。

IOS Plugin not working…・Issue #167・petermetz/cordova-plugin-ibeacon・Github
https://github.com/petermetz/cordova-plugin-ibeacon/issues/167

こちらの投稿では、locationManager のパーミッションのリクエストをしているかや、XCodeでの設定についての確認があり、それらに対応したのですが、それでも動かず…。
…根が深そうな気がしますね。
一度、プラットフォームの削除と再インストールを試してみようかな?

 

なお、サンプルコードはきちんと動作したので、私のコードもしくは設定が間違っているのは間違いなさそう。
原因がわかったら、また改めてご紹介したいと思います!
それまでしばしお待ちを!

  • この記事いいね! (0)
asaba 著者:asaba

プログラミング初心者にすごく優しいアプリを発見!【アルゴリズム図鑑】

アルゴリズムって説明だけじゃ分からないって人もいますよね。筆者は自分に合った参考書を探すのが下手だったので、アプリやネットのツールをよく漁っていました。

例えば、この「アルゴリズム図鑑」というアプリは、プログラミングにおいて応用することのできるアルゴリズムを網羅しており、図を使った視覚的な学習をすることで何をしているかを確かめながら勉強することができます。

青いボタンSTEPを押すと、アルゴリズムの工程をテキストに合わせてみることが出来ます。もちろん戻ることもできます。

この動きに沿ってプログラムを作るとプログラム全体の構図だけでなく、変数の正しい使用法や関数の作り方なども一緒に学ぶことができます。

実験ボタンを押すと、値をシャッフルして実際に動かすことができます。制限は無いので納得いくまで実験してみてください。

 

鍵のかかっているアルゴリズムは、全てのアルゴリズムを購入すると見れるようになっています。お金は少々かかりますが、元のアルゴリズムを発展させた更なるアルゴリズムを見ることが出来ます。

再帰の原理などもしっかり収録されているので、中級者上級者も一見の価値があるかも・・・!?

 

ドットインストールやcordzineでも無料で学ぶことが出来ますが、前者は説明が早く、後者は静止画なのでゆっくり見ながら勉強したいという人向けだと思いました。また文字がそこまで多くないので初心者プログラマーの育成研修とも相性良さげですね。

プログラミングのスキルの幅を広げたい、基礎を振り返りたいという人は試してみてください、それでは!

 

 

  • この記事いいね! (0)
asaba 著者:asaba

雨雲の行方と降水量を視覚的に見ることが出来るアプリ【アメミル】

季節の変わり目は、ゲリラ豪雨や台風が発生しやすくなります。

夏休みに遠出したものの突然の雨で計画は台無しに・・・といったかたも多いのではないでしょうか。

自分はその失敗を活かして「アメミル」というアプリを使って晴れの日に合わせてスケジュールを調整しています。

この「アメミル」は、日本全国の降水情報をレーダーで見ることができ、さらに更新すればいつでもお天気の最新情報を手に入れることができます。

上の例ですが、赤くなるほど降水量が多く、集中的に降っている地域になります。静岡県では、遠州北部にやや激しい雨が降っているのが分かります。

appStoreに機能の詳細が列挙して書いてありますが、ここでは自分がこれ良いなって感じた機能を紹介しますね。

例えば、よく前方を見渡すと曇り空が広がっていますが、アメミルに内蔵している3D機能を使えばどの範囲まで雨が降っているかを視覚的に見ることが出来ます。もし、雨雲が広がっている方向に出かけたいと思ったときにこれで確認すれば、やむタイミングに合わせてスケジュールを無理なく組みなおすことができます。無謀にも突っ込んでびしょ濡れって事態を回避できるようになるのです!

他にも、雨雲の進路や気温の変化を、気象予報士から学習したAIが予測して伝えてくれる機能も備わっています。

無料でも多くの機能を使うことが出来ますが、有料にすると一時間以内の降水予測とGPS追従を使うことが出来るので、心配かつお金に余裕のある方はつけてみてもいいかもしれません。

8月などの季節の変わり目は特にゲリラ豪雨が多発するので、キャンプなどの屋外で遊ぶ計画のあるかたは持っているとかなり安心できるのではと思います。

 

  • この記事いいね! (1)
asaba 著者:asaba

隠れた有能アプリ「iphoneを探す」

題名に隠れたアプリと書いてありますが、隠れていなくて知らないのは自分だけだったという場合も考えられるので気にしないでください。

iphoneのアプリを断捨離をしていたら、「iphoneを探す」というアプリが気になったので使ってみました。

なんだろなと思ってiphoneを紛失した時に、appleIDを使って他の人のihoneやPCを経由して自分のiphoneの場所を検知することができるみたいです。

下の欄の青い点が、探したいiphoneの一覧になります。探したいihpne若しくはすべてのiphoneを対象に探すことができます。

appleIDさえ分かれば盗難などのトラブルに対応して警察に資料として届けることができるのでIDだけは絶対に覚えておきましょう、もしくはどこかに書置きしておいてください。

このiphoneを探すを使って不審なパートナーの動向や迷子の可能性のある子供や年配者の位置も確認できるので、心配性の方は事前にappleIDを教えてもらいましょう。

前者で使う場合は許可が無いとプライバシー侵害として訴えられてしまう可能性があるので必ず理由を説明してくださいね(汗)

 

  • この記事いいね! (0)
asaba 著者:asaba

iphoneのマップアプリでちょっとした旅行気分を味わえる3Dマップ

今回はiphoneに最初から入っているマップアプリの機能について投稿します。

知ってる方もいると思いますが、このアプリでは平面表示のマップだけでなく、航空写真を基にした特定の3D都市を見ることができます。

赤丸で囲ってある左上のビックリマークを押して航空写真タグを押した後に右下オプションに3Dというブロックが現れるのでそれをタッチしてみてください。

すると、日本や海外の主要都市がビルや山がにょきっと3Dで表示されます!

(上から東京、ニューヨーク、パリ)

日本の都市も、福岡市を除いた政令指定都市の景観も見ることができ、各都市のシンボルもばっちり見ることが出来ます。

google earthでは更に多くの3D都市を見ることができますが、この子は画像がやや粗いのと操作しにくい(タッチすると偶にすーっと地点がぶっ飛びます)のがネックなので個人的には綺麗に表示してくれるマップアプリのほうが好きです。

更新も割と頻繁にしてくれるので、まだ登録されていない地方都市もその内見ることができるかもしれません。

異国を旅行した気分になりたい、旅行の予習をしたいという方には楽しめそうです。

p.s.起動時やや重くなるので通信速度に気を付けて使ってみてください。

  • この記事いいね! (0)
村上 著者:村上

【Cordova】「invalid GOOGLE_APP_ID in GoogleService-Info.plist or set in the customized options」エラーの対処法

Cordovaとありますが、詳しくはCordovaで開発したアプリをXcodeで実行した際に発生したエラーです。
ビルドは成功するのですが、実行しようとすると起動中に落ちてしまいます。
なお、このエラーはプラットフォームを一旦削除して追加しなおしたりすると、よく発生するような気がします。

エラー全文はこちら。

Terminating app due to uncaught exception ‘com.firebase.core’, reason: ‘Configuration fails. It may be caused by an invalid GOOGLE_APP_ID in GoogleService-Info.plist or set in the customized options.’

firebase の単語が入っているので、通知のプラグイン辺りのエラーかと思うのですが、正しい原因は「GoogleService-Info.plist」というファイルの内容が、何らかの影響で書き換わってしまったためです。

このエラーについて、詳しくは下記のサイトを参考にしてください。

iOS : invalid GOOGLE_APP_ID in GoogleService-Info.plist or set in the customized options #308 – fechanique/cordova-plugin-fcm – GitHub
https://github.com/fechanique/cordova-plugin-fcm/issues/308

 

対処法ですが、こちらは簡単です。
まず、Cordovaアプリのディレクトリの下記の場所にある「GoogleService-Info.plist」のファイルを削除します。

platforms/ios/[プロジェクト名]/Resources/Resources

ファイルを消してしまうことが心配なら、デスクトップなど、一旦どこかにバックアップを取っておきましょう。

で、ファイルを削除したら、下記のその一つ上のディレクトリにある同名のファイル「GoogleService-Info.plist」を、同じ場所にペーストします。

platforms/ios/[プロジェクト名]/Resources/

あとは、通常通りアプリをビルド・実行すれば問題なく動作しました。

 

以上、Cordovaアプリが実行できない時の対処法でした。
何でも、GoogleService-Info.plist のファイルが何らかの影響で壊れてしまうことは、頻繁ではないにしろ発生する事らしいので、エラー文をよく読んで、「GoogleService-Info.plist」の文字があったら、このファイルの破損を疑ってください。
意外と原因がわかりにくく、原因判明まで時間を使ってしまうエラーなので、少しでも誰かの助けになれば幸いです。

  • この記事いいね! (0)
asaba 著者:asaba

iphoneの色々なバックアップ方法

iphoneは様々なバックアップ方法があります。

例えば、icloudは、ネット上にデータを保存してpcやipadでも共有することができます。

新しくiphoneを買い替えても、ネット上に保存したデータがあれば前のiphoneと何の代わりもなく使うことができます。

pcを持っていない方はこの方法でデータをバックアップするのですが、5GBと少なく、写真や音楽をたくさん持っている方には不向きかもしれません。

 

筆者は、旅行や音楽鑑賞など趣味の関係で写真や曲を都度都度増やしているので、itunesで大量にバックアップしています。

無料でデータを多めに保存できるので、pcを持っている人は大体これなのかな?と思います。

欠点といえば写真や連絡先が見れない位です・・・。

 

このままでも十分な働きなのですが、個人的に将来pcを買い替えるときに備えてAnyTransを購入しようかなと考えています。

itunesは自身にバックアップされている状態の主体に書き換えるので、iphoneにのみ存在するデータを持ったままitunesで同期してしまうと、そのデータも上書きされてしまい消えてしまうからです。

このAnyTransは

・iphoneからpcへデータの転送ができる

・バックアップのサポート範囲がすごく広い(アプリやアマゾンの購入履歴、メッセージやsnsアカウントなど)

・pcから簡単に操作でき、UIが分かりやすい

・同期時間が早い(100曲を60秒以内で転送完了)

itunesにはない機能も備えており、有料ですがそれに見合った働きをしてくれるのは間違いなさそうですね。

個人用ライセンスでも3999円と割とリーズナブルなのは嬉しいです。

pcが古いと同期中に稀に固まるなど欠点があるみたいですがそれに目を瞑ればとても融通が利く子なので

itunesからAnytansに移行した人も多いのでは?と感じます^^

 

p.s.筆者は性格上ファイル管理がとてつもなく雑なので、かっこよくスマートに整理できるようになりたいです

  • この記事いいね! (1)
村上 著者:村上

【Cordova】アプリアイコンにバッヂを追加するプラグイン「cordova-plugin-badge」

今回はCordovaのプラグインのご紹介。
お客様からのご要望で、LINEやFacebookのように、アプリのアイコン右上に赤丸や数字で通知数を表示させたいとのことでした。

現在試しているプラグインは「cordova-plugin-badge」というものです。
GitHubのページは下記から。

GitHub – katzer/cordova-plugin-badge: Access and modify badge numbers
https://github.com/katzer/cordova-plugin-badge

 

プラグインの導入方法ですが、まず下記のコマンドでプラグインを追加します。

cordova plugin add cordova-plugin-badge

なお、もしエラーが発生した場合は、下記のコマンドをお試しください。

cordova plugin add https://github.com/katzer/cordova-plugin-badge.git

上記のコマンドで、プラグインの追加まではできたので、今度はソースに下記のようにコードを追加します。

document.addEventListener('deviceready', function () {
    cordova.plugins.notification.badge.set(10);
}, false);

なお、セットしている数値が、バッヂに表示される値になります。

…が、何故か、私の環境では Android、iOS共にバッヂが表示されず…!
現在原因を調査中です。
…アプリを開いた時にリセットされているとかかな?

 

ということで、アプリアイコンにバッヂを表示するためのプラグイン「cordova-plugin-badge」でした。
まだ動いてはいませんが、導入自体はすごく簡単だったので、正常に動作すればかなりおすすめできるプラグインだと思います。
とりあえず、バッヂが表示されるように調整頑張ります…!

  • この記事いいね! (0)
asaba 著者:asaba

2ファクタ認証についてざっくり説明してみる

最近自分のiPhoneに以下の通知が来た。

 

「2ファクタ認証が設定されていません。」

 

 

設定画面からパスワードとセキュリティをタップして2ファクタ認証の設定ができるみたいです。

 

 

 

なにこれ?普通のパスワードだけじゃダメなのかと思い調べてみました。

 

探ってみると次のメリットがあるようです。

 

例えば、新しいiphoneやipadを購入したときにicloudを使用すると

 

パスワードを二段階要求されるようになります。

 

これは、限られたパスワードを知っていて信頼できるユーザーかどうか確かめるためです。

 

万が一appleIDが流出しても、自分の持っている認証パスは他で知りうることができないので

 

IDだけ流出しても第三者の不審なアクセスを防ぐことができます。

 

このように従来のセキュリティをより堅牢にすることで安心してicloudを使うことができます。

 

ちなみにFacebookやlineでもこのシステムが導入されているみたいです。

 

使えるのはios9以降みたいですね。

 

最近は企業の情報流出のニュースが流れていて

 

自分の知人も個人情報漏洩の憂き目にあい

 

こちらも他人事じゃなくなってきました。

 

もし、この通知を無視している場合は速やかに二段認証にしておきましょう。

 

  • この記事いいね! (0)
asaba 著者:asaba

予定をまとめて管理できるwanderlistを使ってみた

今日は、最近使った便利なアプリについて書き綴ります。

 

自分は、旅行したい場所やある時はメールやメモ帳などのファイルでまとめていました。

 

ですがこれだといちいちファイルを開いて手動でぽちぽち消したりしなければいけないので正直めんどくさいです。

 

というかやっている人は自分だけだと思います。

 

そんなずさんな管理をしていた自分もこのアプリ、wanderlistでおさらばしました。

 

 

このアプリは、自分のするべきこと(例えば旅行リストだったり地域の行事だったり)をリスト別で整理できます。

 

シェア機能も備わっており、共通の予定を持っている友達や会社の人ともスケジュールを共有できるので、自分と相手の予定が合わないというミスマッチを防ぐことができます。

 

スケジュールがいっぱいで整理できないなって時の強い味方ってことで、管理が苦手だなという人には合っているアプリだと思います。

 

 

 

  • この記事いいね! (0)