はじめに
Cordova で Android の Adaptive Icon を設定する方法。
TL;DR
- Android Studio で Adaptive Icon の画像を作成
colors.xml
を作成config.xml
の<platform name="android">
内にアイコン設定を追記
1 | <icon |
Cordova で Android の Adaptive Icon を設定する方法。
colors.xml
を作成config.xml
の <platform name="android">
内にアイコン設定を追記1 | <icon |
Cordova で iOS, Android で異なる ID を使う方法。(特殊な事情がない限りは iOS, Android で同じ ID を使うと思う)
config.xml
の widget
に以下を設定ios-CFBundleIdentifier
android-packageName
Cordova で QR コードスキャナのプラグイン(bitpay/cordova-plugin-qrscanner)を追加すると、iOS, Android のビルドがエラーになる問題の対応方法。
platforms/android/app/src/main/java/com/bitpay/cordova/qrscanner/QRScanner.java
を修正
guyromb/cordova-open-native-settings を使って、Cordova アプリから OS の設定アプリを開く方法。
README には「iOS 8/9/10」と記載されているが、iOS 14.4 でも問題なく動作した。
cordova plugin add cordova-open-native-settings
でプラグイン追加cordova.plugins.settings.open
で設定アプリを開くことができるCordova で Repro とカスタム URL スキームを使ってディープリンクを扱う方法。
config.xml
変更(allow-intent
, config-file
追加)window.handleOpenURL
を定義Cordova Android アプリで HTTP(≠ HTTPS) 通信をした際に出る net::ERR_CLEARTEXT_NOT_PERMITTED
エラーの解決方法
cleartextTrafficPermitted="false"
がデフォルトになったAndroidManifest.xml
に android:usesCleartextTraffic="true"
を追加すれば HTTP 通信を許可できるplatforms/android/app/src/main/AndroidManifest.xml
config.xml
に edit-config
を追加すれば OKCordova Android で iframe 内のリンクをシステムデフォルトブラウザで開く方法。
前置きなどは 親 Window で iframe からのデータ受信、イベント検出する方法 の「前置き」と同じ。
以下はとあるプロジェクトの要件など。
- Cordova で iOS/Android まとめて開発
- コンテンツ内部は先方が作成
- コンテンツ内に先方管理外のサイトへのリンクがある
- ガワはこちらで作成して、コンテンツを
iframe
で読み込むiframe
内のリンクをシステムデフォルトブラウザで開きたいiOS は問題なかった(意図通りに動作した)が、Android だけ上手く動かなかった。具体的には、リンクをタップすると
iframe
内で開こうとするが、X-Frame-Options の設定によりnet::ERR_BLOCKED_BY_RESPONSE
となる、というもの。
iframe
側: postMessage
でリンク先 URL を送信preventDefault
で元イベント(リンク先を iframe
内で開こうとするアクション)を抑止created
, beforeDestroy
フックでイベントリスナを 追加/削除Cordova iOS アプリで長押し(ロングタップ, ロングプレス)によるコンテキストメニューを無効化する方法。
config.xml
を設定SuppressesLongPressGesture
, Suppresses3DTouchGesture
を true
Cordova で whiteoctober/cordova-plugin-app-version を使って、アプリ名やアプリのバージョン情報などを取得する方法。
cordova plugin add cordova-plugin-app-version
でプラグイン追加cordova.getAppVersion.getAppName()
cordova.getAppVersion.getPackageName()
cordova.getAppVersion.getVersionCode()
cordova.getAppVersion.getVersionNumber()
Cordova Android アプリのビルド時に This project uses AndroidX dependencies, but the 'android.useAndroidX' property is not enabled. Set this property to true in the gradle.properties file and retry.
のエラーとなる場合の対処方法。
platforms/android/gradle.properties
を修正するbefore_compile
フックを使うと良いconfig.xml
に追加npm run cordova-serve-android
を使う場合は after_prepare
フックも設定1 |
|