简体   繁体   中英

Local notification in phonegap 3.3.0

Thank you Dawson! The problem mentioned below has been solved in android. But sadly it does not work when I build the project in ios, could anyone help?

I am going to using this plugin to build a android/ios apps with local notification. https://github.com/katzer/cordova-plugin-local-notifications/wiki

First I created a phonegap project

phonegap create notification

Add the plugin

cordova plugin add https://github.com/katzer/cordova-plugin-local-notifications.git

Modify the /www/config.xml

<gap:plugin name="de.appplant.cordova.plugin.local-notification" />

I copied local-notification.js to /www dir and referenced it in the index.html

<html>
<head>
    <meta charset="utf-8" />
    <meta name="format-detection" content="telephone=no" />
    <!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
    <link rel="stylesheet" type="text/css" href="css/index.css" />
    <title>Hello World</title>
</head>
<body>
    <div class="app">
        <h1>PhoneGap</h1>
        <div id="deviceready" class="blink">
            <p class="event listening">Connecting to Device</p>
            <p class="event received">Device is Ready</p>
        </div>
    </div>
    <script type="text/javascript" src="cordova.js"></script>
    <script type="text/javascript" src="local-notification.js"></script>
    <script type="text/javascript">]
        window.plugin.notification.local.add({ message: 'Great app!' });
    </script>
</body>

I built the android apps using the command

phonegap build android

I can successfully built the android apps but there is no notification poped up as expected. Can anyone know whats wrong with me at the above seetting? Many thanks to all of you.

You wont be able to call that function until after the deviceReady event has fired.

For testing I always take my plugin function and add it as a click action to the "device is ready" p tag.

Example:

<p class="event received">Device is Ready</p>

change to:

<p class="event received" onclick="window.plugin.notification.local.add({ message: 'Great app!' });">Device is Ready</p>

I do this with the default cordova example app since I know that 'Device is ready' will not display until after the deviceReady event has fired. This is a good way to test if plugins are working before you do any real work on your project.

This is another example. It has custom sound and other properties such as title, badge type is interesting how this plugin doc is not finished yet, creating local notifications for android working absolutely beautiful with latest cordova (3.4.x) just create a var and assign your package name (the one you use when created the phonegap/cordova project with the command line something like this for example:

     cordova create LocalNotification com.example.localnotification LocalNotification

Should be used in the plugin with these values:

    var package_name = "com.example.localnotification";
                    window.plugin.notification.local.add({
                                  date        : Math.round(new Date().getTime()/1000 + 5),
                                  title       : "Android App Tes Local Notification", 
                                  message       : "This is a new local notification.",
                                  repeat        : "daily",
                                  sound       : 'android.resource://' + package_name + '/raw/beep',
                                  badge           : 0,
                                  id             : 666,
                                  foreground      : function(notificationId){
                                  console.log("Hello World! This alert was triggered by notification " + notificationId);
                                  },
                                  background  : function(notificationId){
                                  console.log("Hello World! This alert was triggered by notification " + notificationId);
                                  }           
                                  });

Download local notificator plugin (working on Android ONLY)

Download beep.mp3

stack overflow original comment

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM