はじめに
Vue.js を kazupon/vue-i18n が動作しない問題の修正方法。
TL;DR
vue add i18n
でプラグイン追加- 環境(バージョン組合せ?)によっては上手く動かないので
src/i18n.js
を修正messages[locale] = locales(key).default
->messages[locale] = locales(key)
はじめに
guyromb/cordova-open-native-settings を使って、Cordova アプリから OS の設定アプリを開く方法。
README には「iOS 8/9/10」と記載されているが、iOS 14.4 でも問題なく動作した。
TL;DR
cordova plugin add cordova-open-native-settings
でプラグイン追加cordova.plugins.settings.open
で設定アプリを開くことができる- 設定アプリ内のどの機能にアクセスしたいかは以下を参照
はじめに
Cordova で Repro とカスタム URL スキームを使ってディープリンクを扱う方法。
TL;DR
- EddyVerbruggen/Custom-URL-scheme をインストール
- Content Security Policy の設定変更
config.xml
変更(allow-intent
,config-file
追加)window.handleOpenURL
を定義
- ディープリンクを設定して Repro プッシュ通知を送信
はじめに
Chrome 拡張機能で Firebase Authentication を使って認証する方法。
TL;DR
- Email/Password での認証は
signInWithEmailAndPassword
で実施- 次回以降ログインできるように Email/Password を Sync ストレージ に保存(※セキュリティ上の問題あり)
- Email/Password で認証後、トークン発行&保持 でもいけそうだけど試せてない
- Google 認証などの方法もあるが試せてない
はじめに
Stripe & Firebase によるサブスクリプションを試した際のメモ。
TL;DR
- Stripe 公式の サブスク用 Firebase Extension を試した
- 導入後の Tips を簡単に整理した
- 購読状況の確認は Firestore の
status
とcurrent_period_end
を使えば OK - 購読キャンセルは Stripe でカスタマーポータルの設定を変更すれば OK
- 購読状況の確認は Firestore の
はじめに
Firebase 公式ドキュメント Firebase による支払い処理 を試した際のメモ。
TL;DR
- 公式ドキュメントを試した
- Firebase 側のデータがどうなるか、外観カスタマイズはどうするか、などについて簡単に確認した内容をメモ
はじめに
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 でシステムデフォルトのブラウザを呼び出す
- 他ページで余計な動作をしないように注意
- 今回は Vue なので
created
,beforeDestroy
フックでイベントリスナを 追加/削除
- 今回は Vue なので
はじめに
Cordova iOS アプリで長押し(ロングタップ, ロングプレス)によるコンテキストメニューを無効化する方法。
TL;DR
- テキスト選択、3Dタッチを無効化する場合は
config.xml
を設定SuppressesLongPressGesture
,Suppresses3DTouchGesture
をtrue
- 画像などの長押しを無効化する場合は CSS で設定
- 意図通りに動くか、他箇所で不具合が出ないかはしっかり検証が必要
はじめに
AWS S3 のオブジェクト群を Firebase の Storage (Cloud Storage for Firebase) にコピーする方法。
TL;DR
- 公式手順(参考1, 参考2)があるので、要件を満たせるならそれを使う
- 公式手順でダメな場合は自分でスクリプトを組む
- Node.js の場合は
aws-sdk
(aws/aws-sdk-js) とfirebase-admin
(firebase/firebase-admin-node) を使う - 1ファイルをコピーするサンプルコード作った
- Node.js の場合は
- 目的の 公式ドキュメント(API リファレンス)にたどり着く追うのが割と大変