如何在Ionic移动应用程序中为$ cordovaLocalNotification设置本地图像的图标?

时间:2015-06-10 21:56:30

标签: cordova ionic-framework ionic localnotification ngcordova

我正在使用Ionic框架开发移动应用程序,目前正在尝试配置本地通知。我将ngCordovalocal-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机器人图标,而不是我想要指定的图标。

有没有人有关于如何正确设置图标选项的任何提示?文档提供了使用外部图像的示例,但是可以使用本地图像吗?

3 个答案:

答案 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进行测试,请在此处发送评论。