2017-01-24 2 views
1

Я создал гибридное приложение, используя ionic2, в котором я использую локальное уведомление о переносе.

Все, что работает отлично, только одно не может изменить значок, ниже я вставляю свой код здесь.Как изменить значок ионного 2 локального значка уведомления?

LocalNotifications.schedule({ 
     id:1, 
     title: "Test Title", 
     text: "Push Notification", 
     icon: "res://icon.png", 
     at: new Date(new Date().getTime() + 5 * 1000), 
     sound: null, 
     every: "minute"   
    }); 

А также я попробовал этот ниже код.

LocalNotifications.schedule({ 
     id:1, 
     title: "Test Title", 
     text: "Push Notification", 
     icon: "http://icons.iconarchive.com/icons/treetog/junior/256/camera-icon.png", 
     at: new Date(new Date().getTime() + 5 * 1000), 
     sound: null, 
     every: "minute"   
    }); 

Если я использую удаленный URL-адрес, приложение принудительно останавливается. Любой помог мне решить эту проблему.

+0

см это -https: // github.com/katzer/cordova-plugin-local-notifications/wiki/04.-Создание, которое может вам помочь –

+0

Я уже ссылаюсь на эту ссылку в любом случае, спасибо –

+0

Где вы разместили свой 'icon.png' в своей структуре папок? – Beat

ответ

0

Предполагая, что вы сохранили свой icon.png в своем res!

Есть два метода, которые вы можете использовать, чтобы направить в Рез папку и ее содержимое:

  • Рез: //drawable/icon2.png: что направляет к Рез-папке и ее вложенная рисуем себя
  • файл: //res/drawable/koala6.jpg: который начинается в корне каталога платформы и направляет другой значок

Я использовал два 50x50 иконки размера, которые хранятся в: платформы/Android/RES/вытяжке

и названы: koala6.jpg и icon2.png

Но вы можете хранить ваши значки в любом подкаталоге res.

Вы можете показать одну из этих двух изображений с использованием одного из методов, приведенных выше:

LocalNotifications.schedule({ 
    id:1, 
    title: "Test Title", 
    text: "Push Notification", 

    // method 1: 
    icon: 'res://drawable/icon2', 

    // method 2: 
    //icon: "file://res/drawable/koala6", 

    at: new Date(new Date().getTime() + 5 * 1000), 
    sound: null, 
    every: "second" 
}); 

В этом примере показано изображение-расширения (.png, .jpg) опущены.


Если вы хотите, чтобы показать 50x50 изображения с помощью URL:

Определить некоторые права в вашем AndroidManifest.xml:

<?xml version='1.0' encoding='utf-8'?> 
<manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="0.0.1" package="io.ionic.starter" xmlns:android="http://schemas.android.com/apk/res/android"> 
    <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <application android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name" android:supportsRtl="true"> 
     <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:theme="@android:style/Theme.DeviceDefault.NoActionBar" android:windowSoftInputMode="adjustResize"> 
      <intent-filter android:label="@string/launcher_name"> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <receiver android:exported="false" android:name="de.appplant.cordova.plugin.localnotification.TriggerReceiver" /> 
     <receiver android:exported="false" android:name="de.appplant.cordova.plugin.localnotification.ClearReceiver" /> 
     <activity android:exported="false" android:launchMode="singleInstance" android:name="de.appplant.cordova.plugin.localnotification.ClickActivity" android:theme="@android:style/Theme.NoDisplay" /> 
     <receiver android:exported="false" android:name="de.appplant.cordova.plugin.notification.TriggerReceiver" /> 
     <receiver android:exported="false" android:name="de.appplant.cordova.plugin.notification.ClearReceiver" /> 
     <receiver android:exported="false" android:name="de.appplant.cordova.plugin.localnotification.RestoreReceiver"> 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      </intent-filter> 
     </receiver> 
     <activity android:exported="false" android:launchMode="singleInstance" android:name="de.appplant.cordova.plugin.notification.ClickActivity" android:theme="@android:style/Theme.NoDisplay" /> 
    </application> 
    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23" /> 
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

    <!-- these two are added --> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
</manifest> 

Тогда вы можете показать им, как вы сделали это с помощью image-extensions (.png, .jpg)

Надеюсь, это поможет.

0

Поместите файл icon.png в ИПВ \ \ каталог активов IMG для значка и маленький значок положить icon.png файл в платформах \ Android \ рес \ Drawable каталог

this.notification = { 
    id: inc++, 
    title: 'your title', 
    text: "your text", 
    icon:'file://assets/img/icon.png', 
    smallIcon:'res://icon', 
    sound: 'file://assets/sounds/sms.mp3', 
    data: { mydata: 'My hidden message this is' }, 
    at: timestamp 
}; 
this.notifications.push(this.notification);