【问题标题】:How can I show icons in push notification?如何在推送通知中显示图标?
【发布时间】:2020-03-12 14:17:26
【问题描述】:

推送通知中的图标出现问题。

我正在使用 PHP 将 推送通知 发送到 android 应用,以及我使用 Ionic 4Angular 8 创建的 android 应用

下面是 PHP 代码

<?php
error_reporting(E_ALL);
ini_set("display_errors", true);

// API access key from Google API's Console
define( 'API_ACCESS_KEY', 'xyz' );

$registrationIds = array("");

$_POST['title'] = "Title goes here.";
$_POST['subtitle'] = " ";
$_POST['ticket_text'] = " ";
$_POST['message'] = "Write here your message.";

// prep the bundle
$msg = array
(
    'message'   => $_POST['message'],
    'title'     => $_POST['title'],
    'subtitle'  => $_POST['subtitle'],
    'tickerText' => $_POST['ticket_text'],
    'vibrate' => 1,
    'alert'=> 'true',
    'badge'=> true,
    'sound'=> 'true',
    'largeIcon' => 'large_icon',
    'smallIcon' => 'small_icon'
);
$fields = array
(
    'registration_ids'  => $registrationIds,
    'data'              => $msg
);
$headers = array
(
    'Authorization: key=' . API_ACCESS_KEY,
    'Content-Type: application/json'
);
$ch = curl_init();
curl_setopt( $ch,CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send' );
curl_setopt( $ch,CURLOPT_POST, true );
curl_setopt( $ch,CURLOPT_HTTPHEADER, $headers );
curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch,CURLOPT_POSTFIELDS, json_encode( $fields ) );
$result = curl_exec($ch );
curl_close( $ch );
echo $result;
exit;

通知如下图所示,它以灰色显示图标,我想在那里显示我的应用程序图标。

【问题讨论】:

    标签: php ionic4 push angular8


    【解决方案1】:

    该图标应存储在您的 android 应用程序的资源文件夹中。然后你在 largeIcon 或 smallIcon 你发送的文件名。

    【讨论】:

    【解决方案2】:
    <platform name="android">
     ... 
    <resource-file src="locales/android/drawable-mdpi/ic_stat_onesignal_default.png" target="app/src/main/res/drawable-mdpi/ic_stat_onesignal_default.png" />
     <resource-file src="locales/android/drawable-hdpi/ic_stat_onesignal_default.png" target="app/src/main/res/drawable-hdpi/ic_stat_onesignal_default.png" />
     <resource-file src="locales/android/drawable-xhdpi/ic_stat_onesignal_default.png" target="app/src/main/res/drawable-xhdpi/ic_stat_onesignal_default.png" />
     <resource-file src="locales/android/drawable-xxhdpi/ic_stat_onesignal_default.png" target="app/src/main/res/drawable-xxhdpi/ic_stat_onesignal_default.png" /> 
    <resource-file src="locales/android/drawable-xxxhdpi/ic_stat_onesignal_default.png" target="app/src/main/res/drawable-xxxhdpi/ic_stat_onesignal_default.png" /> 
    <!-- Uncomment if you have added a large icon. --> 
    <!--- <resource-file src="locales/android/drawable-xxxhdpi/ic_onesignal_large_icon_default.png" target="app/src/main/res/drawable-xxxhdpi/ic_onesignal_large_icon_default.png" /> ---> 
    </platform>
    

    我知道你没有使用onesignal,但它在android中存储图像的方式相同,因此将ic_stat_onesignal_default.png更改为所需的名称。

    https://medium.com/@senning/push-notifications-with-ionic-and-cordova-plugin-firebase-ab0c0cad3cc0
    

    这里有一个链接,说明你如何才能更清楚地做到这一点,因为他在这里使用的是 firebase 而不是 onesignal,这对你来说可能更清楚。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多