web-dev-qa-db-ja.com

Cordovaのプッシュ通知アイコンAndroid

Phonegap Push Plugin を使用していますが、通知領域にプッシュ通知が表示されている場合、アイコンは白い四角形です。代わりにstar.pngを表示します。私は ドキュメント を次のように試してみました:

star.pngwww/imagesを入れ、config.xmlに次の行を追加しました

<platform name="Android">
  <resource-file src="www/images/star.png" target="res/drawable-xhdpi/star.png" />
  <resource-file src="www/images/star.png" target="res/drawable-hdpi/star.png" />
  <resource-file src="www/images/star.png" target="res/drawable-mdpi/star.png" />
  <resource-file src="www/images/star.png" target="res/drawable-ldpi/star.png" />
</platform>

(私は異なる解像度を使用する必要があることを理解していますが、私は今それを動作させるように試みているだけです。)

次に、プラグインを初期化するときに使用します。

let Push = PushNotification.init({
    Android: { senderID: globalData.firebaseSenderID, icon: 'star.png', iconColor: 'blue' },
    ios: {}
});

icon: 'star'も試しました。ただし、白い四角形は残ります。これを機能させるにはどうすればよいですか?

[email protected][email protected]を使用します。

9
wezten

このプラグインとデフォルトの通知アイコン(白い四角)でも同じ問題が発生しました。 init()関数のiconプロパティはGCM(Pluginバージョン1.x)専用であるようです。 (サーバーから送信された)Pushペイロードにアイコンを設定する解決策を見つけました。残念ながら、このアプリケーションでは私たちのサービスではないため、ペイロードを変更できませんでした。

ただし、幸運なことに、firebaseには独自のプッシュアイコン設定(デフォルト:白い四角のアイコン)があり、AndroidManifest.xmlのメタデータタグで置き換えることができます。

解決

platforms/Android/app/src/main/にあるAndroidManifest.xmlファイルに次のmetadataタグを追加して、このソリューションを試してください。

<application>
    <!-- ... -->
    <meta-data Android:name="com.google.firebase.messaging.default_notification_icon" Android:resource="@drawable/star"/>
    <!-- ... -->
</application>

自動化-フック

Androidアプリケーションを実行し、予想されるアイコンが表示されるかどうかを確認します。問題がなければ、私たちのようにコードバフックを使用してプロジェクトを拡張できます。たとえば、次のOSX bashスクリプトは常に上記の行をAndroidManifestに追加します。

sed -i '' "s|</application>|<meta-data Android:name=\"com.google.firebase.messaging.default_notification_icon\" Android:resource=\"@drawable/star\"/></application>|1" platforms/Android/app/src/main/AndroidManifest.xml
4
Benjamin Bur

Cordova 8の場合、私はconfig.xmlファイルは次のとおりです。

<resource-file src="resources/Android/notification/icon-mdpi.png" target="app/src/main/res/drawable-mdpi/notification.png" />
<resource-file src="resources/Android/notification/icon-hdpi.png" target="app/src/main/res/drawable-hdpi/notification.png" />
<resource-file src="resources/Android/notification/icon-xhdpi.png" target="app/src/main/res/drawable-xhdpi/notification.png" />
<resource-file src="resources/Android/notification/icon-xxhdpi.png" target="app/src/main/res/drawable-xxhdpi/notification.png" />
<resource-file src="resources/Android/notification/icon-xxxhdpi.png" target="app/src/main/res/drawable-xxxhdpi/notification.png" />

次に、アイコンをresources/Android/notification/これらの解像度:

resources/Android/notification/icon-mdpi.png     (24 × 24)
resources/Android/notification/icon-hdpi.png     (36 × 36)
resources/Android/notification/icon-xhdpi.png    (48 × 48)
resources/Android/notification/icon-xxhdpi.png   (72 × 72)
resources/Android/notification/icon-xxxhdpi.png  (96 × 96)

その後、通知をプロパティとしてスケジュールするときに使用されます。

smallIcon: 'res://notification',
1
tuliomarchetto

ドキュメントのセクションを読んだ場合

ここで、アイコンはAndroid .pngフォルダー内のres/drawable画像ファイルの名前です。次に例を示します。platforms/ Android/res/drawable/phonegap.png画像をAndroidにコピーする方法を記述するフックを作成する_ res/drawableフォルダーはこのREADMEの範囲外ですしかし、あなたがコピーできる優れたチュートリアルがあります。`。詳細については、この記事をご覧ください http://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/

drawableフォルダーに必要なことが明確に示されていますが、これはありません。

0
Tarun Lalwani