2017-01-24 2 views
1

나는 코드 바 로컬 푸시 알림을 사용한다는 점에서 ionic2을 사용하는 하이브리드 앱을 만들었습니다.

모든 것이 완벽하게 작동하는 것은 아이콘을 변경할 수 없습니다. 아래에 여기에 내 코드를 붙여 넣습니다.ionic 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을 저장했다고 가정!

  • 고해상도 :을 //drawable/icon2.png :

    당신이 고해상도 폴더와 그 콘텐츠에 직접 사용할 수있는 방법은 두 가지가있는 고해상도 폴더와 그에게 지시하는 하위 폴더 자체를 그릴 수

  • 파일 : //res/drawable/koala6.jpg : 플랫폼 디렉토리의 루트에서 시작하여 다른 아이콘
,691,363에 지시 (210)

나는 두 개의 50 × 50에 저장되어있는 크기 아이콘 사용했다 : 플랫폼/안드로이드/입술/당김

을 이름이 지정됩니다 : koala6.jpgicon2.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)는 탈락한다.

의 AndroidManifest.xml에 일부 권한을 정의합니다 :


당신이 URL을 통해 50 × 50의 이미지를 표시 할

다음
<?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> 

사용하여 그랬던 것처럼 당신이 그들을 표시 할 수 있습니다 이미지 확장 (.png, .jpg)

희망이 있습니다.

0

아이콘과 플랫폼에 icon.png 파일을 넣어 작은 아이콘에 대한 귀하의 src \ 자산 icon.png 파일 \ IMG 디렉토리를 넣어 안드로이드 \ 입술 \ 당김 디렉토리

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); 
관련 문제