はじめに

Cordova で Repro とカスタム URL スキームを使ってディープリンクを扱う方法。

TL;DR

続きを読む

はじめに

firebase/firebaseui-web による Firebase Authentication の認証 UI をローカライズ(日本語化)する方法。

TL;DR

  • 読み込む script__{LANGUAGE_CODE} を付ける
  • 日本語の場合は以下のように変更
1
2
-<script src="https://www.gstatic.com/firebasejs/ui/4.7.3/firebase-ui-auth.js"></script>
+<script src="https://www.gstatic.com/firebasejs/ui/4.7.3/firebase-ui-auth__ja.js"></script>
続きを読む

はじめに

Chrome 拡張機能で Firebase Authentication を使って認証する方法。

TL;DR

  • Email/Password での認証は signInWithEmailAndPassword で実施
    • 次回以降ログインできるように Email/Password を Sync ストレージ に保存(※セキュリティ上の問題あり)
  • Email/Password で認証後、トークン発行&保持 でもいけそうだけど試せてない
  • Google 認証などの方法もあるが試せてない
続きを読む

はじめに

Stripe & Firebase によるサブスクリプションを試した際のメモ。

TL;DR

続きを読む

はじめに

Firebase 公式ドキュメント Firebase による支払い処理 を試した際のメモ。

TL;DR

  • 公式ドキュメントを試した
  • Firebase 側のデータがどうなるか、外観カスタマイズはどうするか、などについて簡単に確認した内容をメモ
続きを読む

はじめに

Cordova Android アプリで HTTP(≠ HTTPS) 通信をした際に出る net::ERR_CLEARTEXT_NOT_PERMITTED エラーの解決方法

TL;DR

  • Android P から cleartextTrafficPermitted="false" がデフォルトになった
    • 非暗号化(HTTP)通信がエラーになる
  • AndroidManifest.xmlandroid:usesCleartextTraffic="true" を追加すれば HTTP 通信を許可できる
    • Cordova Android: platforms/android/app/src/main/AndroidManifest.xml
  • config.xmledit-config を追加すれば OK
    • Cordova 9.0 環境だと問題が起きるが、8.0 や 10.0 だと問題ない(っぽい)
続きを読む

はじめに

Cordova Android で iframe 内のリンクをシステムデフォルトブラウザで開く方法。


前置きなどは 親 Window で iframe からのデータ受信、イベント検出する方法 の「前置き」と同じ。

以下はとあるプロジェクトの要件など。

  • Cordova で iOS/Android まとめて開発
  • コンテンツ内部は先方が作成
    • コンテンツ内に先方管理外のサイトへのリンクがある
  • ガワはこちらで作成して、コンテンツを iframe で読み込む
  • iframe 内のリンクをシステムデフォルトブラウザで開きたい

iOS は問題なかった(意図通りに動作した)が、Android だけ上手く動かなかった。具体的には、リンクをタップすると iframe 内で開こうとするが、X-Frame-Options の設定により net::ERR_BLOCKED_BY_RESPONSE となる、というもの。

TL;DR

  • iframe 側: postMessage でリンク先 URL を送信
    • 送信後 preventDefault で元イベント(リンク先を iframe 内で開こうとするアクション)を抑止
  • アプリ(Cordova App)側: apache/cordova-plugin-inappbrowser でシステムデフォルトのブラウザを呼び出す
  • 他ページで余計な動作をしないように注意
続きを読む

はじめに

親 Window で iframe から送られてきたデータを受信したり、iframe 内のイベントを検出する方法。

※イベント検出もデータ送受信機能で実現しているので、厳密にはイベント検出(addEventListener 相当)ではない。

TL;DR

続きを読む

はじめに

Cordova iOS アプリで長押し(ロングタップ, ロングプレス)によるコンテキストメニューを無効化する方法。

TL;DR

  • テキスト選択、3Dタッチを無効化する場合は config.xml を設定
    • SuppressesLongPressGesture, Suppresses3DTouchGesturetrue
  • 画像などの長押しを無効化する場合は CSS で設定
  • 意図通りに動くか、他箇所で不具合が出ないかはしっかり検証が必要
続きを読む

r17n


Softwear Engineer


Fukuoka