NIFCLOUD-mbaas / UserCommunity

ニフクラ mobile backend ユーザーコミュニティ
https://mbaas.nifcloud.com/
81 stars 18 forks source link

【過去質問】Androidで[usesCleartextTraffic=true]を設定するとpush通知が届かない #1190

Open kobo0908 opened 3 years ago

kobo0908 commented 3 years ago

現在、monacaでncmb-push-monaca-pluginを使って開発をさせていただいております。 Androidアプリ内で、http通信を行っているため、 [usesCleartextTraffic=true] を設定していますが、この設定があるとpush通知が飛ばなくなることが判明しております。 上記の設定を行った場合でも、push通知が届くようにしたいです。 設定方法等あればご教示いただけますでしょうか。

何卒、よろしくお願い申し上げます。

kobo0908 commented 3 years ago

本事象の原因と対処方法について下記のようにご案内いたしますのでご確認ください。

原因について

usesCleartextTraffic="true"を指定するとプッシュ通知が届かなくなります。 こちらは、ビルドされたapkファイルのAndroidManifest.xmlファイルから、 以下のニフクラmobile backendのプッシュ通知設定が削除されてしまうためでございます。

本事象はMonaca側の設定に依存する現象のため、 mobile backend の不具合ではございません。 そのため、弊社にて現象を解消することは不可となります。

※参考情報

         <service
             android:name="com.nifcloud.mbaas.core.NCMBFirebaseMessagingService"> ★こちらの設定が削除されます

             <intent-filter>

                 <action
                     android:name="com.google.firebase.MESSAGING_EVENT" />
             </intent-filter>
         </service>

回避策について

以下の通りにmonaca_push_pluginをカスタマイズしていただき、 Monacaにカスタマイズプラグインとしてインポートしていただく方法をご案内させていただきます。

なお、こちらはプラグインの改変に当たるため、弊社では動作保証しておりません。 恐れ入りますが、お客様にて十分な動作確認を実施いただきますよう、よろしくお願いいたします。

■カスタマイズに必要な資料、およびカスタマイズ内容について ・ソースコード  https://github.com/NIFCLOUD-mbaas/monaca_push_plugin ・修正ファイル  https://github.com/NIFCLOUD-mbaas/monaca_push_plugin/blob/master/plugin.xml ・カスタマイズ内容  1.<platform name="android"></platform>の間に以下を追記してください。

   <edit-config file="AndroidManifest.xml" target="/manifest/application" mode="merge">
    <application android:usesCleartextTraffic="true" />
   </edit-config>

 2.上記カスタマイズを実施後、Zip化し、Monacaにてカスタマイズプラグインとして    インポートしてください。

  ▼参考:Monaca ガイド > Monaca CLI > プロジェクトの構成 > ユーザー Cordova プラグイン      https://docs.monaca.io/ja/products_guide/monaca_cli/dependencies/custom_cordova_plugin/     ※すでにmonaca push pluginをインポートしている場合、      一度無効化し、再度インポートする必要がありますので、ご注意ください。

  なお、Monacaドキュメントには、Monacaではカスタムビルドデバッガーなどの場合、   usesCleartextTrafficの設定が必要であるとの記載がございますが、   monaca push pluginはカスタムビルドデバッガー対応していませんことについても、ご留意ください。

  ▼(参考)Changes from Cordova 9.0:About pairing Monaca Localkit and Monaca CLI    https://docs.monaca.io/en/release_notes/20190627_cordova9/#about-pairing-monaca-localkit-and-monaca-cli

  ▼Monaca ガイド > Monaca デバッガー > インストール方法 > iOS 向け Monaca デバッガー     ※こちらにmonaca push pluginはカスタムビルドデバッガー対応していない旨記載がございます。    https://docs.monaca.io/ja/products_guide/debugger/installation/debugger_ios/