为啥 cordova-local-notification-plugin 不起作用(Phonegap,Android)?

Posted

技术标签:

【中文标题】为啥 cordova-local-notification-plugin 不起作用(Phonegap,Android)?【英文标题】:Why is the cordova-local-notification-plugin not working (Phonegap, Android)?为什么 cordova-local-notification-plugin 不起作用(Phonegap,Android)? 【发布时间】:2019-12-12 11:42:23 【问题描述】:

我用this plugin 构建了一个Phonegap 应用程序,它似乎在应用程序中使用:

config.xml

<plugin spec="https://github.com/katzer/cordova-plugin-local-notifications.git#b8f358e" />

但是当我尝试发送本地通知时,插件似乎不起作用。我试过这个:

    document.addEventListener('deviceready', function () 
    
        alert(1);


        cordova.plugins.notification.local.schedule(
           id:      1,
           title:   'Some Timer',
           message: 'Some Message'
        );

        alert(2);

    , false);

但只有第一个 alert 有效,这就是我认为该插件无法正常工作的原因。那么如何构建一个应用来发送本地通知呢?

非常感谢:-)


cordova -v 9.0.0 (cordova-lib@9.0.1)

cordova 插件 ls cordova-plugin-whitelist 1.3.4 “白名单”

但是如上图,我在config.xml中添加了local.notification插件,Adobe Phonegap Build网页上说使用了该插件。

cordova 平台 ls 安装平台: 安卓 8.0.0 浏览器 4.1.0 可用平台: 电子^1.0.0 ios ^5.0.0 osx ^5.0.0 窗户^7.0.0


PS:我两天前发布了一个类似的问题,但我对其进行了编辑以指定我的问题。

【问题讨论】:

您能提供您正在处理的版本吗?只显示cordova -vcordova plugin lscordova platform ls的结果 当然,我编辑了帖子以分享信息。谢谢 您是如何断定问题出自本地通知插件的? 它是唯一没有预装的插件,没有插件我可以构建应用程序 我现在可以构建应用程序,但通知仍然不起作用 【参考方案1】:

感谢分享文件。我能够成功运行您的应用程序,并且通知每次都有效。但是,您需要编辑如下代码

对于没有 ID 参数的通知

cordova.plugins.notification.local.schedule(
    title: 'My first notification',
    text: 'Thats pretty easy...',
    foreground: true
);

对于带有 ID 参数的通知,ID 应该是唯一的

cordova.plugins.notification.local.schedule([
     id: 1, title: 'My Second notification' ,
     id: 2, title: 'My Third notification' 
]);

Index.js

var app = 
  // Application Constructor
  initialize: function() 
    document.addEventListener('deviceready', this.onDeviceReady.bind(this), false);
  ,
  onDeviceReady: function() 
    this.receivedEvent('deviceready');
  ,
  receivedEvent: function(id)     
    oneNotification();
    multipleNotification();
  
;

app.initialize();

function oneNotification() 
  cordova.plugins.notification.local.schedule(
    title: 'My first notification',
    text: 'Thats pretty easy...',
    foreground: true
  );


function multipleNotification() 
  cordova.plugins.notification.local.schedule([
      id: 1,
      title: 'My Second notification'
    ,
    
      id: 2,
      title: 'My Third notification'
    
  ]);

【讨论】:

哇,这真是令人印象深刻!但它还不适合我。您是使用 Adob​​e 网站还是命令行构建应用程序?我在网站上工作。并感谢您的努力! @WilliWespe 编辑了帖子以包含我正在使用的代码。 太棒了!有效!我非常非常感谢你!你是最好的!我希望它没有打扰你太多。谢谢:-) 不是问题,很乐意提供帮助。祝你代码的其余部分好运..!! 遇到了类似的问题,设置foreground: true 好像已经修复了...

以上是关于为啥 cordova-local-notification-plugin 不起作用(Phonegap,Android)?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 DataGridView 上的 DoubleBuffered 属性默认为 false,为啥它受到保护?

为啥需要softmax函数?为啥不简单归一化?

为啥 g++ 需要 libstdc++.a?为啥不是默认值?

为啥或为啥不在 C++ 中使用 memset? [关闭]

为啥临时变量需要更改数组元素以及为啥需要在最后取消设置?

为啥 CAP 定理中的 RDBMS 分区不能容忍,为啥它可用?