本地通知插件仅在 index.html 中有效 - 无法读取未定义的属性“通知”

Posted

技术标签:

【中文标题】本地通知插件仅在 index.html 中有效 - 无法读取未定义的属性“通知”【英文标题】:local notification plugin does only work in index.html - Cannot read property 'notification' of undefined 【发布时间】:2014-05-23 10:02:20 【问题描述】:

您好,我正在开发一个 cordova 应用程序 (Cordova 3.4.0) 并希望显示通知。我安装了本地通知插件,如下所述:https://github.com/katzer/cordova-plugin-local-notifications。以某种方式显示通知仅在 index.html 文件中起作用。见这里:

<html>
  <head>
    <script type="text/javascript" src="cordova.js"></script>
    <script type="text/javascript" src="js/lib/jquery-1.11.0.js"></script>
    <script type="text/javascript" src="js/lib/jquery.mobile-1.4.2.js">
    <script type="text/javascript">
      $(document).ready(function()
        document.addEventListener("deviceready", function() 
          // window.plugin.notification.local.add( message: 'Great app!' ); // Works
          location = "nextPage.html";
        , false);
      )
    </script>
  </head>
</html>

但是在调用 location = "nextPage.html"; 之后另一页上完全相同的代码将不再起作用。我收到此错误:

错误:无法读取未定义的属性“通知”。

任何想法为什么 window.plugin 未定义?我的 nextPage.html 看起来与上面的 html 完全相同,只是我注释掉了 - location = "nextPage.html"; - 并评论 - window.plugin.notification.local.add( message: 'Great app!' ); - 。它们在同一个文件夹中,我确实实现了 cordova、jquery 和 jquery mobile。

我的 config.xml 中有这个条目:

<feature name="LocalNotification">
        <param name="android-package" value="de.appplant.cordova.plugin.localnotification.LocalNotification" />
</feature>

关于我做错了什么有什么想法吗?提前致谢。如果您需要更多信息,请告诉我。

【问题讨论】:

【参考方案1】:

这是因为没有加载您需要的所有库 JS。 我有一个应用程序,它在打开它时使用插件通知并且也是异步的,但是一个奇怪的 razon 插件通知没有加载。 我解决了修改加载JS的顺序。

修改加载库的方式和位置。 希望对您有所帮助。

【讨论】:

以上是关于本地通知插件仅在 index.html 中有效 - 无法读取未定义的属性“通知”的主要内容,如果未能解决你的问题,请参考以下文章

Cordova,onResume() 仅在我包含 alert() 时才有效

本地通知颤动

单击通知行为仅在应用程序在后台运行时才有效?

本地通知仅在 iPhone 上打开应用程序时出现在通知中心

Index.php 有效,而 Index.html 不适用于 WAMP 上的本地主机

Firebase Messaging Unity 插件仅在前台显示通知