首页 文章

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

提问于
浏览
2

我'm developing a mobile application using the Ionic framework and am currently trying to configure local notifications. I' m使用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机器人图标,而不是我想要指定的图标 .

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

3 回答

  • 0
    $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

    您似乎应该使用公共网址中的图标,尝试将您的图标上传到公共网址(drive,drobpox,tinypng ..) .

  • 0

    使用本地文件使用路径为 file://

    您可以使用www文件夹中的任何文件作为 /assets/www/ ,例如您将图像放在www / img中的文件夹中,路径需要设置为 file://assets/www/img/your_file.png

    用于设置通知的图标应用程序用作 file://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
    $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测试,请在这里发送评论 .

相关问题