カテゴリーアーカイブ iOS

村上 著者:村上

【Cordova】「cordova-plugin-fcm」で取得したトークンが登録されていない時の対処法

以前、「cordova-plugin-fcm」プラグインの getToken() でトークン取得できない時の対処法について紹介しましたが、こちらの方法で取得できたトークンが実は使えなかったので、さらなる対処法についてです。
一応下に以前の記事を載せておきますが、こちらは非推奨ですのでご注意ください。

【Cordova】プラグイン「cordova-plugin-fcm」のgetTokenでnullが返ってくるときの対処法
https://cpoint-lab.co.jp/article/201810/【cordova】プラグイン「cordova-plugin-fcm」のgetTokenでnullが返ってくると/

 

では、今回行った対応策ですが、まず Firebase Console Messaging の設定を確認します。
で、いつから変わったのかは知らないのですが、クラウドメッセージングの設定の APNs証明書を登録する項目で、この証明書に代わり、APNs 認証キーを設定できる様になっていました。
実際の画面はこちら。

推奨しているのは、こちらのAPNs 認証キーとのことでしたので、証明書からキーに変更します。
なお、認証キーは Apple DeveloperCertificates, Identifiers & Profiles ページから作成できます。
そして、この認証キーは一度しかダウンロードできないので、万が一にも消してしまわないように注意してください。

次に、Xcodeの設定です。
Xcode の Workspace Settings から、Build System を変更します。
恐らく、New Build System になっていると思いますので、これを Legacy Build System に変更します。

変更点は上記の2点です。
あとはいつも通り Build して実行したところ、無事に getToken() でトークンが取得できました!

 

以上、getToken() で null が返ってくるときの対処法でした。
Push通知に関しては、もしAndroidで問題なく動いているのなら、iOSの原因は十中八九 証明書周りのはずなので、まずはそのあたりを調査することをおすすめします。

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

Appleが突如10/30に発表会をスケジュール!何が発表されるのか気になる…

突如としてAppleがイベントの開催を告知しました。

Apple Special Event – Apple
速報:Apple、前代未聞の招待状で10/30イベント開催を告知 NYで何が発表されるか徹底予想 – engadget日本版

今度こそベゼルレスのiPad Proや新型macbookAirが発表されるのでは、という予想もたてられているようですね。

この前のGoogleのイベントで、Pixel3を”iPhone Xsよりも優れた製品”として大々的にアピールしたので、
こちとら黙ってはいられない…!
というところもあるかもしれませんね。

こちらの発表会イベントは日本時間で10/30(火)23:00から行われるとのことなので、この前のGoogleのイベントよりは見やすい時間帯となっています。

新製品発表の瞬間をリアルタイムで見られるチャンスですので、是非チェックしてみてはいかがでしょうか。

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

【ios】緊急速報を消す方法 ※非推奨です

今日も脱線気味です、すみません。

緊急災害警報のあのうるさい音を消す方法についてお話します。

少し前に強い台風が浜松を襲ったときに、風や雨音がうるさくとても眠れる状況ではありませんでした。

それだけならまだ耐えられたのですが、極めつけは携帯の緊急災害速報(怒)

何回鳴ったか分かりませんが、筆者を寝不足に陥れた張本人です。よく台風や大雨の時にジリジリ鳴っていますが実はこいつ消せます、簡単に。

まず、設定をタップします。その後に通知という赤いアイコンをタップしてください。

その後に一番下までスライドすると、緊急速報というリストがあります。通常は緑でonになっていると思うので、トグルをタップして

オフにします。たったこれだけで鳴らなくなります。

 

いかがでしたでしょうか。大げさだなと感じる人もいれば万が一の時に備えて鳴るようにしなきゃと心構えを持つ人もいるので

強くはお勧めしません。むしろ止めといた方が今後の為ですはい。

いつでもonにそんなもん怖くねーよゆっくり寝たいんだよ(# ゚Д゚)という方は試してみてください、自己責任ですけど。

はい、短いですが今日はこれでおしまいです。まじめな方は今日の記事は見なかったことにして災害に対応できるようにしてくださいね!

それでは!

 

P.S.これだと緊急地震速報も鳴らなくなるのかな・・・?それは怖いけど。

 

 

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

【Cordova】プラグイン「cordova-plugin-fcm」のgetTokenでnullが返ってくるときの対処法

現在進行形で格闘中のアプリの修正の中で、解決したものがあったのでそれをご紹介。
タイトル通り、「cordova-plugin-fcm」で端末の一意のトークンを取得する getToken() で、なぜか取得した値が null になる時の対処法です。
他にも同じエラーに悩んでいる人はいたようだったので、ある程度簡単に情報はヒットしました。
で、今回参考にしたサイトはこちら。

getToken() returns ‘null’ only after install・Issues #104・fechanique/cordova-plugin-fcm・GitHub
https://github.com/fechanique/cordova-plugin-fcm/issues/104

 

解決策としましては、もしトークンが取得できなかった場合は、onTokenRefresh() を使って、トークンを再取得しなおす方法が良いとのこと。
実際のコードはこちら。

FCMPlugin.getToken(
    (token) => {
        if(token == null){
            FCMPlugin.onTokenRefresh(function(token){
                // onTokenRefresh() でトークンを取得時の処理
            });
        } else {
            // getToken() でトークンを取得した時の処理
        }
    },
    (err) => {
        // エラー時の処理
    }
);

こんな感じです。
もし、getToken() で取得したトークンが null だったら、onTokenRefresh() でトークンを再取得しています。
現時点では、問題なくトークンが取得できました!
取得できたトークンはデータベースに保存なりして、プッシュ通知の送付に使います。

…が、なぜか今度はプッシュ通知が送れず…。
Androidだと、上記のトークンが取得できない問題もなく、あっさりとプッシュ通知送付まで実装できたのですが、まさかiOSでつまづくとは…。
一難去ってまた一難という感じですが…引き続き頑張ります。

 

ということで、cordova-plugin-fcm プラグインでトークンが取得できない時の対処法でした。
同じことにお困りの方は、是非お試しください。

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

【アプリ】写真加工機能を手軽に実装できる「Adobe Creative SDK」

まだAndroidに導入途中なので、詳しい実装方法はご紹介できないのですが、まずはこんな便利なサービスがあるというご紹介まで。

写真にフィルターをかけたり、スタンプを押したりできる無料のSDKが、Adobeから提供されています。
サービス名は、タイトルにある通り「Adobe Creative SDK」です。
公式サイトはこちらから。
Adobe Creative SDK
https://www.adobe.io/apis/creativecloud/creativesdk.html
Androidだけでなく、iOSやWebにも対応しています。
Web版だけは試したことがありますが、とても簡単でした!

なお、こちらの記事も参考になりますので、ぜひご覧ください。
https://qiita.com/84d010m08/items/566415df1914ca097082
https://qiita.com/84d010m08/items/566415df1914ca097082

 

こちらのサービスを使うにはアカウント登録とアプリ登録が必要なので、今回はそちらをご紹介。
まずAdobeアカウントを、Adobeの公式サイト右上のログインから作成してください。

アドビ公式サイト:クリエイティブ、マーケティング、文書管理ソリューション
https://www.adobe.com/jp/

アカウントがすでにある人は、ログインしてください。

ログインで来たら、下記からコンソールに移動します。

Adobe I/O Console
https://console.adobe.io/integrations

そのページに「New Integration」というボタンがあるので、そこから新規のアプリを登録します。
なお、アプリ名などは後で変更できますので、ご安心を。
ちなみに、この登録だけではアプリストアでの公開ができないらしいので、テスト用ならOKですが、のちのち公開するなら審査を通してください。
この作業についても、このコンソール画面からできます。
スクリーンショットをとる手間などはありますが、審査自体は思ったよりもすんなり通りましたね。

 

各プラットフォームごとの導入方法については、下記のドキュメントを参考にしてください。

Documentation
https://www.adobe.io/apis/creativecloud/creativesdk/docs.html

 

以上、簡単ですが、Adobe Creative SDK についてでした。
Androidに導入が完了しましたら、改めて手順をまとめたいと思います。

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

噂されていた新型iPhoneがついに発表!!! ラインナップは “XS” “XS MAX” “XR” の3種類!!

今日午前2時に、Appleの製品発表イベントで、以前からうわさされていたiPhoneシリーズの新モデルが発表されたようです!!!

発表されたのは3機種
https://www.apple.com/jp/iphone/compare/

今回の新機種はすべてiPhone Xベースになったようです。
左から
iPhone XS iPhone XS Max iPhone XR
の3ラインナップになるようです。

つまり、iPhoneではついにホームボタン無し、ノッチありのデザインが”当たり前”になることになります。

上記のURLから、詳しいスペック一覧も確認できるのですが、その中から個人的に気になったポイントを上げてみます。
まずびっくりするのがこちら。

XSとXS Max はなんと最大容量が512GBに。
もう一般的なモバイルPCよりも大きくなってしまっています。クレイジーすぎです。

iPhoneで動画をたくさん撮る人にはとても嬉しい発表かもしれませんね。

次はプロセッサ。

今回の3機種については、すべて同じプロセッサが搭載されるようです。
廉価版にも最新のプロセッサが搭載されるのは嬉しいですね。

では廉価版と上位版の違いはどこにあるのか、というところですが、まずカメラに差が出てきそうです。

XS、XS Maxは光学ズームがありますが、XRはデジタルズームのみのようです。
ズームしたときの画質も、XS/XS Maxの方が綺麗に撮れそうですね。

こちらはちょっと注意したいポイント。
XS/XS Maxは”ギガビット級LTE”に対応していますが、XRの場合、LTE-Advancedまでの対応になっています。
もっともキャリアが対応していなければギガビット級LTEに対応していても速度が出ませんが、今後のことを考えたときに、より速い通信速度を求める方は注意が必要になるかもしれませんね。

ちなみに、噂されていたデュアルSIMスロットですが、実際はnanoSIMスロットと”eSIM”スロットの2つとなったようです。
eSIMは新しい”内蔵型SIM”の規格で、ソフトウェアによってデータを書き換えることでキャリアを切り替える仕組みになっています。
いろいろな事情から、こちらはキャリアが対応していないと使用することができないため、実質的にはnanoSIMスロット×1のような構成になりそうです。

eSIMの詳細はこちらの記事がわかりやすいので確認してみてください。
次世代SIM規格「eSIM」(イーシム)って何だ? 世界では動き始めているeSIMをわかりやすく解説 – モバレコ

最後に、気になるお値段について。

XRは84,800円~、XS Maxはなんと¥124,800~となるようです。ちょっと高い…?

その代わり、一世代前の機種となったiPhone 8・iPhone 7 が値下げされ、少し手が届きやすくなりました。
これはちょっとうれしいですね。

アップル、iPhone 8/7などを10,000円~11,000円値下げ  – 価格.com 新製品ニュース

今後さらに盛り上がってきそうなApple界隈。

新OSのiOS 12とmac OS Mojaveも間もなくリリースということで、今後の動きにも目が離せませんね。

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

【Xcode】アプリを実機で起動した時の「iPhone is busy: Processing symbol files」エラーの対処法

Xcodeでたまに見る実機での実行エラーについて。
今回遭遇したのは、「iPhone is busy: Processing symbol files」というエラーでした。

エラー全文は、以下の通りです。

iPhone is busy: Processing symbol files(iPhoneがビジー状態:シンボルファイルの処理)
Xcode will continue when iPhone is finished.(iPhoneが終了するとXcodeが続行されます)

 

原因としては、シンボルファイルの処理に時間がかかっていることだったので、待っていればいつか終わるらしいです。
なお、参考にさせていただいた記事はこちらから。

iPhoneアプリを実機で動作させようとしたらエラー|房総ITサービス
http://boso-it.com/xcode/iphoneアプリを実機で動作させようとしたらエラー/

が、Macのスペックにもよりますが、だいたい処理の終了まで10分程度かかるとのこと。
私含め、そんなに待てない!という方は、別の方法として、iPhoneの再起動をお試しください。

再起動は、一度アプリの実行を停止し、念のため、Macと繋がるケーブルを抜いてから行ってください。
私の環境ではこれで上手くいきました。
こちらの方法については、下記の記事を参考にしました。

実機デバッグで、busyエラーが出た時の対処 – ramkaの朝ごはんはピーナッツパン
http://ramka.hateblo.jp/entry/2018/02/14/013549

 

以上、Xcodeでアプリを実機で動かそうとしたときのエラーについてでした。
もし、同じエラーに遭遇した場合は、参考にしていただければと思います。

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

【iponeアプリ】日本全国AEDマップ

gpsで許可さえすれば近くのAEDをすぐに探せるというアプリを見つけたので使ってみました。

アプリをっダウンロードしてgpsを許可するだけで自分がいる地点のAEDがある施設をアイコンで示してくれます。

地点投稿機能もついており、利用時間の情報の追加もできます。知らない土地でAEDが必要になった時に非常に重宝されるのでこういう機能はいいなと感じました。

心臓の弱い方と一緒にいてもし万が一必要になった時はこれを使えば早い段階で救助ができるのでとても利用価値の高いアプリだと思います。これからもこのようなアプリが増えていってほしいですね~。

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

【Cordova】QRコードリーダーを実装するプラグイン「phonegap-plugin-barcodescanner」

今回はCordovaで開発しているアプリに、QRコードリーダーの機能を実装する方法について。
コードがかなり分かりやすかったのでおすすめのプラグインです。
使用したプラグインは「phonegap-plugin-barcodescanner」。
phonegap という名前が付いていますが、Cordovaでも問題なく使えます。

GitHubはこちらから。

GitHub – phonegap/phonegap-plugin-barcodescanner: cross-platform BarcodeScanner for Cordova / PhoneGap
https://github.com/phonegap/phonegap-plugin-barcodescanner

 

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

cordova plugin add phonegap-plugin-barcodescanner

プラグインの追加が終ったら、config.xml を確認します。
もし、下記の1行が追加されていなかったら追加してください。

<preference name="android-build-tool" value="gradle" />

また、iOSの場合は、info.plist に 「Privacy – Camera Usage Description」の項目を追加しないと、アプリからカメラが起動できないので、こちらも追加します。
設定はこのくらいです。

あとは、下記のコードを記述するだけです。

cordova.plugins.barcodeScanner.scan(
    function (result) {
        // QRコードの読み込み成功
        // 成功時の処理
        // Result: result.text
        // Format: result.format
        // Cancelled: result.cancelled
    }, 
    function (error) {
        // 読み込み失敗
        // 失敗時の処理
    }
);

上記のコードが実行されると、自動的にカメラを使用するかを尋ねるダイアログが表示され、許可を選択すると、画面内に四角形が表示されているQRコードリーダーが起動します。
で、カメラを適当に作成したQRコードにかざしたところ、無事コード内の情報を取得できました。

ちなみに、試しに作ったQRコードは、本記事のアイキャッチ画像でも使用しています。
なお、取得できるのはこのブログのURL https://cpoint-lab.co.jp/です。
このURLは、上記のコードでは、result.text で取得できます。
適当なコードが見つからない場合は、是非ご利用ください。

 

以上、CordovaアプリでQRコードリーダー機能を実装する方法でした。
最初はカメラを扱うということで、難しいのでは…と思っていましたが、実装が楽なプラグインのおかげでかなり簡単でした!
もし似たようなことを行いたいとお考えでしたら、是非ご参考にしてください。

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

【Cordova】JavaScript上のConsole.log()をXcodeのデバッグエリアに表示する方法

以前からCorodvaアプリを開発していましたが、最近になって便利なプラグインを発見したのでご紹介。
というか、何故これを開発初期に入れていなかったのか…ちょっと後悔しています。

 

おすすめしたいプラグインは「cordova-plugin-console」です。
タイトルにもあるように、こちらのプラグインを導入すると、JavaScript上で記述した console.log() などの結果を、Xcodeのデバッグエリアに表示させることができます。
なお、参考にさせていただいたサイトはこちらから。

Cordova アプリの console.log() を XCode に出力する cordova-plugin-console – Corredor
http://neos21.hatenablog.com/entry/2017/07/10/080000

そして、GitHubのリンクはこちらから。

GitHub – apache/cordova-plugin-console: Apache Cordova Plugin console
https://github.com/apache/cordova-plugin-console

導入方法は、下記のコマンドを実行するだけ。

cordova plugin add cordova-plugin-console

あとは、devicereadyイベントの後に console.log() を記述すれば、それがデバッグエリアに表示されます!
また、試してはいませんが、Android Studio でも同様に使えるそうです。

 

以上、Console.log() をXcodeのデバッグエリアに表示する方法でした。
プラグインの導入だけなので、かなり簡単に行えます!

今まで alert() をメインで使ってきて、そこまで不便は感じていなかったのですが…やはりできるとかなり楽ですね。
Cordovaアプリの開発者はぜひインストールをご検討ください。

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