2017-02-08 16 views
5

Ich benutze dieses Plugin lokale Benachrichtigung zu haben: https://github.com/katzer/cordova-plugin-local-notifications/wiki/03.-InstallationIonic 2: Lokale Benachrichtigungssymbol

ich ein bestimmtes Symbol in meiner Benachrichtigung haben wollen. Es befindet sich in meinem/www/assets/images/Ordner.

Ich versuche auf diese Weise, aber es funktioniert nicht, ich habe ein quadratisches Symbol mit einer Glocke:

public schedule() { 
    cordova.plugins.notification.local.schedule({ 
     title: "New Message", 
     message: "Hi, are you ready? We are waiting.", 
     sound: null, 
     at: new Date(new Date().getTime() + 5 * 1000), 
     icon: 'file://assets/images/logo2.png' 
    }); 
    } 

Jemand zeigen kann mir die Art des Weges, den ich schreiben müssen? Ich bin verloren.

+0

es ist wahrscheinlich '../ Vermögenswerte/Bilder/logo2.png' –

+0

Nein, es funktioniert nicht. :/ –

Antwort

1

ich eine Lösung gefunden:

ich erstellen Sie einen neuen Ordner mit dem Namen "ziehbar" in/platforms/android/res/ ich mit dem Namen "ic_notifications.png" in meinem neuen Ordner mein Bild setzen und „ic_notifications_small. png ".

In meinem Code schrieb ich

cordova.plugins.notification.local.schedule({ 
     id: 2, 
     title: "Notification", 
     message: "Retour à l'application", 
     sound: null, 
     at: new Date(new Date().getTime() + 5 * 1000), 
     icon: 'ic_notifications', 
     smallIcon: 'ic_notification_small' 
    }); 

Und es funktioniert!

+0

Es funktioniert, aber eine graue Farbe erscheint im Hintergrund des App-Symbols. – Vasanth

0

Give Bildpfad, wie unten, ohne auf die Bilddateinamen LocalNotifications.schedule({ id: 1, title: "Notification Title", text: "Notification Text", icon: 'assets://images/image_name' });

4

für lokale Push-Benachrichtigung ionischer 2 Plugin Hinzufügen Erweiterung, die Sie auf das Symbol, wie unten einstellen. Hier wird icon.png im Falle von Android aus dem ziehbaren Ordner genommen. Und Sie können ionic so konfigurieren, dass Sie die lokale Bilddatei kopieren, die in einen zeichnbaren Ordner kopiert werden soll, indem Sie unten in der Konfigurationsdatei unter Android Platform Section hinzufügen.

<platform name="android"> 
<resource-file src="resources/android/icon/icon.png" target="res/drawable/icon.png"/> 
</platform> 


this.localNotifications.schedule({ 
      id: 1, 
      title: data.title, 
      text: data.body, 
      data: data, 
      icon: "res://icon.png", 
      smallIcon:"res://icon.png" 
     }); 
+0

Kopieren Sie so, plus das Symbol muss 72x72 Pixel mit einem transparenten Hintergrund sein. – James

2

Wenn Ihr einziges Problem mit den korrekt auf Android erscheinen Benachrichtigungen Symbole ist, wird die folgende für mich gearbeitet - nehmen Sie die ziehbar-xhdpi-Symbol Symbol (Größe 96x96), benennen Sie es Symbol .png und es an zwei Stellen platzieren:

  • /src/assets/img
  • /platforms/android/res/ziehbar

Die drawable Ordner ist ein neuer Ordner, die durch das Kopieren Plattformen/android/res/Mipmap-xhdpi zu Plattformen/android/res/drawable manuell erstellt werden kann, oder mit Hilfe eines Hakens. In Ihrem Code, die lokalen oder Geofence Meldung wie folgt verwiesen wird:

smallIcon: 'res://icon', 
icon: 'file://assets/img/icon.png' 

Wenn ionische cordova Ressourcen Teil des Problems ist, können Sie Ihre eigene einmalige Einrichtung tun können Nehmen Sie Ihr größtes Icon und erstellen Sie mit Hilfe eines Tools zur Größenanpassung wie resizeimage.net eine Reihe von Icons für iOS und Android. Das Excel hier https://github.com/dovk/howto_resources-folder hat eine Liste der Größen und Namen der zu erstellenden .png-Dateien. Sie legen sie dann in ihren jeweiligen Ressourcen Ordner wie ionische cordova Ressourcen getan hätte - zum Beispiel in resources/android/Symbol, Ressourcen/ios/splash und so weiter. Wenn Sie dies tun, dann ionische cordova Plattform oder ionische cordova Plattform ios android zugeben sollte nicht mehr verwendet werden, da dies tut auch ionische cordova Ressourcen - Was Sie tun müssen, ist cordova platform (ohne die ionische am Anfang).