有人使用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图像
答案 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')
});
})