Apache Cordova Local Notification插件图标

时间:2015-03-05 22:22:20

标签: cordova localnotification

有人使用local notification plugin吗?

我正在尝试为Android制作一个应用程序,该应用程序通过用户相机拍摄的照片显示通知。但是我不能让“图标”起作用。我尝试在网络上使用 .bmp 文件和外部文件(以便测试它是否存在读取我的文件系统的问题),但没有运气。

代码非常简单,我可以获得通知但不是图标。以下是我的代码:

. . .
for (i = 0; i < _notificationDates.length; i++) {
    $cordovaLocalNotification.add({
        id: _notificationKey + _model.id + "_" + i,
        date: _notificationDates[i],
        message: 'Reminder to take ' + _model.name + '. ' + _model.description,
        icon: _model.fileURI // have tried using external (http://...) .bmp or .jpg file does not work as well
        //,smallIcon: _model.fileURI
    });
}
. . .

_model.fileURI指向内部存储的图像,但我也尝试过外部URI(例如; http:// ...),指向.bmp或.jpg图像

1 个答案:

答案 0 :(得分:1)

迟到的答案。我也有这个问题。为了找到合适的uri,必须在我的设备上一次又一次地运行它是非常烦人的。过了一会儿它似乎只有在平台/ android / res / drawable中的图标时才有效。 我最终创建了一个after_build_hook。它在Github

干杯。

编辑:好的,要点:

在cordova构建中,当您有类似

之类的内容时,会自动创建platforms / android / res / drawable-xxx文件夹
data.table
在config.xml中

。 但是,cordova-plugin-local-notifications图标的默认文件夹是platforms / android / res / drawable。我找不到像这样创建默认文件夹的方法。所以我创建了一个after_build_hook。

代码:

 <icon src="res/android/drawable-ldpi/icon.png" density="ldpi" /> 

这会将您的通知图标从您的项目/ res / drawable复制到您的项目/ platforms / android / res / android / drawable

将其作为钩子运行。在你的config.xml中:

 var fs = require('fs-extra');
// rootdir
var rootDir = process.cwd();

//emptyDir creates dir when not present
fs.emptyDir(rootDir+'/platforms/android/res/drawable', function (err)    {

 //simple task, just nest it

  fs.copy(rootDir + '/res/android/drawable', rootDir +'/platforms/android/res/drawable', function (err) {

if (err) console.log(err)
if (!err) process.stdout.write('created drawable folder')


});

})