Weißes Benachrichtigungssymbol für Android mit PhoneGap Build und PushPlugin

10

Ich verwende Phonegap mit dem Build-Dienst von Adobe und frage mich, ob (und wenn ja, wie) ich meine Benachrichtigungen mit einem weißen Symbol versehen könnte (wie Google hier ). Ich verwende das PushPlugin , konnte jedoch keine Dokumentation dazu finden. Im Moment zeigt meine App nur das Launcher-Symbol neben dem Benachrichtigungsinhalt an.

Wer weiß also, ob es eine Möglichkeit gibt, ein alternatives Benachrichtigungssymbol mit dem PushPlugin zu aktivieren, stehe ich mit dem Launcher-Symbol fest oder gibt es ein anderes Plugin mit dieser Funktion?

Danke!

    
Olivier 15.12.2013, 15:33
quelle

11 Antworten

8
___ qstntxt ___

Ich verwende Phonegap mit dem Build-Dienst von Adobe und frage mich, ob (und wenn ja, wie) ich meine Benachrichtigungen mit einem weißen Symbol versehen könnte (wie Google hier ). Ich verwende das PushPlugin , konnte jedoch keine Dokumentation dazu finden. Im Moment zeigt meine App nur das Launcher-Symbol neben dem Benachrichtigungsinhalt an.

Wer weiß also, ob es eine Möglichkeit gibt, ein alternatives Benachrichtigungssymbol mit dem PushPlugin zu aktivieren, stehe ich mit dem Launcher-Symbol fest oder gibt es ein anderes Plugin mit dieser Funktion?

Danke!

    
___ answer38210274 ___

Android API 21+ verwendet nur weiße Farbe für kleines Symbol. Wenn Sie die Ziel-SDK-Version ändern, verwendet Ihr Compiler das ältere SDK, sodass Sie in neue SDK-Funktionen einschneiden können. Der beste Weg besteht also darin, zwei Symbole zu haben: kleines und großes (wenn der Balken nach unten gezogen wird)

    
___ answer20620133 ___

Ich habe noch nie Phonegap Build verwendet - ich erstelle den Build Prozess manuell auf meinem Rechner. Wie auch immer, ich denke, Sie sollten die Datei GCMIntentService.java unter src / com / plugin / gcm finden. Suchen Sie in dieser Datei nach der folgenden Codezeile:

%Vor%

Dies kann durch das gewünschte Symbol ersetzt werden. Wenn Sie ein Symbol namens "notification.png" im Ordner / res / drawable platzieren, können Sie die Codezeile wie folgt ändern:

%Vor%     
___ answer32659435 ___

Für eine Weile können Sie Ihre android-targetSdkVersion auf API 20 einstellen. Diese Version verwendet nicht die neuen Funktionen, die die alten Ressourcen zerstört haben.

    
___ answer38209052 ___

Für mich funktioniert die Lösung, wenn zwei Antworten von hier kombiniert werden:

Zuerst habe ich die Ziel-SDK-Version

festgelegt %Vor%

Und dann habe ich den Plugin-Code wie hier vorgeschlagen bearbeitet. In GCMInntentService Klasse habe ich die Methode setNotificationSmallIcon folgendermaßen geändert:

%Vor%

oder wenn Sie ein benutzerdefiniertes Symbol festlegen möchten, verwenden Sie

%Vor%     
___ answer37700017 ___

Dies ist für das neue Plugin - phonegap-plugin-push

Könnte auch für das alte PushPlugin funktionieren.

Android hat Richtlinien für das Benachrichtigungssymbol für Lollipop und höher festgelegt. Das Symbol muss rein weiß und transparent sein.

Was ich getan habe:

  1. Erzeugt verschiedene Größen für mein Logo Bild (lasst es nennen "notif.png"), die transparente Rückseite hatte, mit dieser Werkzeug . Denken Sie daran, ein transparentes Hintergrundbild zu haben. Wenn Sie kein transparentes Bild haben, zeigt Android nur ein weißes Symbol an. Nehmen wir an, der Name des generierten Symbols lautet "ic_notif".

  2. Kopieren Sie die entsprechenden Bilder in den Ordner res / drawables.

  3. Geben Sie im Push-JS-Code den Wert "ic_notif" für die Eigenschaft "icon" ein. Und "grau" zu "iconColor" Eigenschaft wie folgt: %code%

Testen Sie Ihre Benachrichtigung mit diesem Tool .

    
___ answer42163308 ___

Ich habe auch zu viele Probleme damit konfrontiert, aber nach der Suche im ganzen Internet habe ich verschiedene Lösungen für dieses Problem gefunden. Lassen Sie mich alle Lösungen zusammenfassen und erklären:

Hinweis: Diese Lösung ist für Phonegap cordova-Benutzer

vorgesehen
  1. Beispiel

%code%

Sie müssen Ihren android-targetSdkVersion-Wert auf <21 setzen.  Nach dem Setzen dieses Wertes wird das Benachrichtigungssymbol bis Android 6 (Marshmallow) angezeigt. Es funktioniert nicht unter Android 7 (Nougat). Diese Lösung hat für mich funktioniert.

  1. Ändere den statusbarStyle in deiner Konfigurationsdatei. Beispiel

%code%

Aber diese Lösung funktioniert nur, wenn Ihre App geöffnet ist. Also, ich denke diese Lösung ist nicht die beste Lösung, aber sie hat für viele Benutzer funktioniert.

  1. Machen Sie Ihr Symbol transparent. Diese Lösung hat für viele Menschen funktioniert. Eigentlich ist die Sache, in der Entwicklung der nativen Anwendung müssen wir ihnen drei Bilder zur Verfügung stellen: (a) App-Symbol (b) Benachrichtigungssymbol (c) Statusleisten-Icon-Bild, aber im Falle der Entwicklung hybrider mobiler Anwendungen gibt es keine Option dafür. Also machen Sie Ihr Icon transparent und diese Lösung wird Ihr Problem lösen.

Und ich bin sicher, dass eine der obigen Lösungen für Ihr Problem funktionieren wird.

    
___ answer45830310 ___

Sie müssen nur das

ändern
  

android-targetSdkVersion

in Ihrer Datei config.xml.

%Vor%

20 Android SDK-Version unterstützt das Logo in Android. Sie müssen also die Android-SDK-Version in Ihrem Code ändern.

    
___ answer45827677 ___

Mit dem letzten Update von PhoneGap Builder auf Version 2 (und CLI v7.0.1) kann ich nun weiße Benachrichtigungssymbole korrekt mit cordova-plugin-push erscheinen lassen.

Ich habe zuerst meine .png-Icons (mit Transparenz) in GIMP erstellt. Ich habe sie dann in meinem Projekt bei %code%

abgelegt

Hier sind die relevanten Auszüge aus meiner Datei config.xml:

%Vor%

Hier ist der Ort, an dem ich initialisiere:

%Vor%     
___ answer34089596 ___

Legen Sie dies auf Ihrem PhoneGap oder Cordova config.xml

fest %Vor%     
___ answer22149199 ___

Wenn Sie Builds verwenden PushPlugin ; lokale Änderungen an %code% # 100 wird verloren gehen.

Wenn Sie nicht lokal oder mit einem alternativen GCM-Plugin arbeiten, können Sie nur Folgendes ändern:

%Vor%     
___ tag123cordova ___ Apache Cordova (früher PhoneGap) ist ein Framework, mit dem Entwickler plattformübergreifende mobile Anwendungen mithilfe von Webtechnologien wie HTML, JavaScript und CSS erstellen können. ___ tag123build ___ Das Konvertieren von Quellcodedateien in eigenständige Softwareartefakte, die auf einem Computer ausgeführt werden können ___ tag123notifications ___ Eine Benachrichtigung ist ein Benutzeroberflächenelement, das angezeigt wird, um anzuzeigen, dass ein Ereignis aufgetreten ist. ___ tag123icons ___ Ein Icon ist ein kleines Piktogramm, das in grafischen Benutzeroberflächen verwendet wird, um die Darstellung von Textinformationen für den Benutzer zu ergänzen. ___ tag123android ___ Android ist das mobile Betriebssystem von Google, das zum Programmieren oder Entwickeln von digitalen Geräten (Smartphones, Tablets, Automobile, Fernseher, Wear, Glass, IoT) verwendet wird. Verwenden Sie für Themen rund um Android Android-spezifische Tags wie android-intent, nicht intent, android-activity, nicht activity, android-adapter, nicht adapter usw. Bei anderen Fragen als der Entwicklung oder Programmierung, aber im Zusammenhang mit Android Framework, verwenden Sie Der Link: https://android.stackexchange.com. ___ qstnhdr ___ Weißes Benachrichtigungssymbol für Android mit PhoneGap Build und PushPlugin ___
Mike N 10.02.2016, 10:00
quelle
16

Ich habe noch nie Phonegap Build verwendet - ich erstelle den Build Prozess manuell auf meinem Rechner. Wie auch immer, ich denke, Sie sollten die Datei GCMIntentService.java unter src / com / plugin / gcm finden. Suchen Sie in dieser Datei nach der folgenden Codezeile:

%Vor%

Dies kann durch das gewünschte Symbol ersetzt werden. Wenn Sie ein Symbol namens "notification.png" im Ordner / res / drawable platzieren, können Sie die Codezeile wie folgt ändern:

%Vor%     
Pål Jørgensen 16.12.2013 20:20
quelle
8

Legen Sie dies auf Ihrem PhoneGap oder Cordova config.xml

fest %Vor%     
Ricardo Vigatti 04.12.2015 13:35
quelle
1

Android API 21+ verwendet nur weiße Farbe für kleines Symbol. Wenn Sie die Ziel-SDK-Version ändern, verwendet Ihr Compiler das ältere SDK, sodass Sie in neue SDK-Funktionen einschneiden können. Der beste Weg besteht also darin, zwei Symbole zu haben: kleines und großes (wenn der Balken nach unten gezogen wird)

    
Sergiy Grechukha 05.07.2016 18:31
quelle
0

Für eine Weile können Sie Ihre android-targetSdkVersion auf API 20 einstellen. Diese Version verwendet nicht die neuen Funktionen, die die alten Ressourcen zerstört haben.

    
rd_rscan 18.09.2015 19:12
quelle
0

Dies ist für das neue Plugin - phonegap-plugin-push

Könnte auch für das alte PushPlugin funktionieren.

Android hat Richtlinien für das Benachrichtigungssymbol für Lollipop und höher festgelegt. Das Symbol muss rein weiß und transparent sein.

Was ich getan habe:

  1. Erzeugt verschiedene Größen für mein Logo Bild (lasst es nennen "notif.png"), die transparente Rückseite hatte, mit dieser Werkzeug . Denken Sie daran, ein transparentes Hintergrundbild zu haben. Wenn Sie kein transparentes Bild haben, zeigt Android nur ein weißes Symbol an. Nehmen wir an, der Name des generierten Symbols lautet "ic_notif".

  2. Kopieren Sie die entsprechenden Bilder in den Ordner res / drawables.

  3. Geben Sie im Push-JS-Code den Wert "ic_notif" für die Eigenschaft "icon" ein. Und "grau" zu "iconColor" Eigenschaft wie folgt: PushNotification.init({"android":{"senderId":"XX","icon":"ic_notif","iconColor":"grey"}});

Testen Sie Ihre Benachrichtigung mit diesem Tool .

    
Lakshay 08.06.2016 10:33
quelle
0

Für mich funktioniert die Lösung, wenn zwei Antworten von hier kombiniert werden:

Zuerst habe ich die Ziel-SDK-Version

festgelegt %Vor%

Und dann habe ich den Plugin-Code wie hier vorgeschlagen bearbeitet. In GCMInntentService Klasse habe ich die Methode setNotificationSmallIcon folgendermaßen geändert:

%Vor%

oder wenn Sie ein benutzerdefiniertes Symbol festlegen möchten, verwenden Sie

%Vor%     
galvan 05.07.2016 17:12
quelle
0

Ich habe auch zu viele Probleme damit konfrontiert, aber nach der Suche im ganzen Internet habe ich verschiedene Lösungen für dieses Problem gefunden. Lassen Sie mich alle Lösungen zusammenfassen und erklären:

Hinweis: Diese Lösung ist für Phonegap cordova-Benutzer

vorgesehen
  1. Beispiel

<preference name="android-targetSdkVersion" value="20"/>

Sie müssen Ihren android-targetSdkVersion-Wert auf <21 setzen.  Nach dem Setzen dieses Wertes wird das Benachrichtigungssymbol bis Android 6 (Marshmallow) angezeigt. Es funktioniert nicht unter Android 7 (Nougat). Diese Lösung hat für mich funktioniert.

  1. Ändere den statusbarStyle in deiner Konfigurationsdatei. Beispiel

<preference name="StatusBarStyle" value="lightcontent" />

Aber diese Lösung funktioniert nur, wenn Ihre App geöffnet ist. Also, ich denke diese Lösung ist nicht die beste Lösung, aber sie hat für viele Benutzer funktioniert.

  1. Machen Sie Ihr Symbol transparent. Diese Lösung hat für viele Menschen funktioniert. Eigentlich ist die Sache, in der Entwicklung der nativen Anwendung müssen wir ihnen drei Bilder zur Verfügung stellen: (a) App-Symbol (b) Benachrichtigungssymbol (c) Statusleisten-Icon-Bild, aber im Falle der Entwicklung hybrider mobiler Anwendungen gibt es keine Option dafür. Also machen Sie Ihr Icon transparent und diese Lösung wird Ihr Problem lösen.

Und ich bin sicher, dass eine der obigen Lösungen für Ihr Problem funktionieren wird.

    
Rinku kumar 10.02.2017 15:44
quelle
0

Mit dem letzten Update von PhoneGap Builder auf Version 2 (und CLI v7.0.1) kann ich nun weiße Benachrichtigungssymbole korrekt mit cordova-plugin-push erscheinen lassen.

Ich habe zuerst meine .png-Icons (mit Transparenz) in GIMP erstellt. Ich habe sie dann in meinem Projekt bei /www/res/notify_icon/android/

abgelegt

Hier sind die relevanten Auszüge aus meiner Datei config.xml:

%Vor%

Hier ist der Ort, an dem ich initialisiere:

%Vor%     
bmonson 22.08.2017 22:03
quelle
0

Sie müssen nur das

ändern
  

android-targetSdkVersion

in Ihrer Datei config.xml.

%Vor%

20 Android SDK-Version unterstützt das Logo in Android. Sie müssen also die Android-SDK-Version in Ihrem Code ändern.

    
Hiten 23.08.2017 03:46
quelle
-1

Wenn Sie Builds verwenden PushPlugin ; lokale Änderungen an .setSmallIcon() # 100 wird verloren gehen.

Wenn Sie nicht lokal oder mit einem alternativen GCM-Plugin arbeiten, können Sie nur Folgendes ändern:

%Vor%     
Alastair 03.03.2014 14:24
quelle