我正在使用Ionic框架开发移动应用程序,目前正在尝试配置本地通知。我将ngCordova与local-notification plugin一起使用。
通知当前正在运行,但我似乎无法弄清楚如何从本地文件设置图标。我的图片目前位于路径'www / img / image.png'的离子项目库中。我正在尝试使用以下代码安排通知:
var alarmTime = new Date();
alarmTime.setMinutes(alarmTime.getMinutes() + 15);
$cordovaLocalNotification.schedule({
id: Math.random().toString(),
date: alarmTime,
message: 'Timeout Warning',
title: 'Return to prevent your session from expiring.',
autoCancel: false,
icon: 'img/image.png'
}, $scope);
通知有效,但不会显示所需的图标。在图标选项中,我还尝试了'www / img / image.png',以及'file://img/image.png'。每次,我总是看到默认的cordova机器人图标,而不是我想要指定的图标。
有没有人有关于如何正确设置图标选项的任何提示?文档提供了使用外部图像的示例,但是可以使用本地图像吗?
答案 0 :(得分:2)
$cordovaLocalNotification.schedule({
id: Math.random().toString(),
date: alarmTime,
message: 'Timeout Warning',
title: 'Return to prevent your session from expiring.',
autoCancel: false,
icon: 'someimage'
}, $scope);
上例中的图标名称指向位置:/platforms/android/res/drawable/
要使插件使用图标,图像文件必须位于此路径中,并按参数中的定义命名。在这种情况下,他们是:
/platforms/android/res/drawable/someimage.png
在这里找到解决方案: ngCordova + local notification plugin
另外,检查github上的插件文档: https://github.com/katzer/cordova-plugin-local-notifications
您似乎应该使用公共网址中的图标,尝试将您的图标上传到公共网址(驱动器,drobpox,tinypng ..)。
答案 1 :(得分:0)
将本地文件使用路径用作 file://
您可以将www文件夹中的任何文件用作 / assets / www / ,例如您将图片放入www / img中的文件夹,路径需要设置为 file:// assets / WWW / IMG / your_file.png 强>
将您的图标申请设置为文件://res/drawable-ldpi-v4/icon.png 示例:
$cordovaLocalNotification.schedule({
id: message.number,
date: d,
message: message['message'],
title: message['name'],
//ongoing: true //not cleared messages
sound: null,
icon: 'file://res/drawable-ldpi-v4/icon.png'
//OR file://assets/www/img/your_file.png
})
答案 2 :(得分:0)
$scope.scheduleSingleNotification = function () {
$cordovaLocalNotification.schedule({
id: 1,
title: 'GRM APP Builder',
text: 'Quer café?!?',
badge: 1,
icon: 'res://coffee.png',
data: {
customProperty: 'custom value 1'
}
}).then(function (result) {
console.log('Notification 1 triggered');
});
};
在花了这个问题花了好几个小时后,我看到上面的一条评论是非常正确的。
如果你想更改图标,你需要在“[my ionic app folder] \ platforms \ android \ res \ drawable”中创建一个名为“drawable”的文件夹。
但诀窍是:在此之后你需要退出livereload模式并再次执行CLI命令“ionic run android -l -c -s”。这是必要的,因为您需要将新资产复制到设备。
我只测试了Android设备,如果您可以使用iOS进行测试,请在此处发送评论。