はじめに

位置情報 API と逆ジオコーディングAPIを使ってブラウザで住所を取得する方法

TL;DR

  • 位置情報navigator.geolocation.getCurrentPosition で取得
    • 緯度(latitude), 経度(longitude), 精度(accuracy)などが取得可能
  • 緯度経度を使って逆ジオコーディング API で住所情報を取得
    • https://mreversegeocoder.gsi.go.jp/reverse-geocoder/LonLatToAddress?lat=<緯度>&lon=<経度>
    • 町名など(lv01Nm), 住所コード(muniCd) が取得可能
  • 住所コードを変換表にかけて都道府県などの情報を取得
    • 変換表: https://maps.gsi.go.jp/js/muni.js
    • GSI.MUNI_ARRAY[<muniCd>] で取得可能
続きを読む

はじめに

guyromb/cordova-open-native-settings を使って、Cordova アプリから OS の設定アプリを開く方法。

README には「iOS 8/9/10」と記載されているが、iOS 14.4 でも問題なく動作した。

TL;DR

続きを読む

はじめに

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

TL;DR

続きを読む

はじめに

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 で 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