cordova的android notify消息通知插件

最近在学习用CORDOVA(PHONEGAP)结合SENCHA TOUCH开发应用,想实现一个安卓下的消息通知功能,这个可以通过CORDOVA的插件来实现。

插件目录结构如下:

notifyplugin

  • plugin.xml
  • www/notifysrv.js
  • src/android/NotifysrvPlugin.java
  • libs/android-support-v4.jar

先编写plugin.xml

<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
    id="com.elon.cordova.plugin" version="0.0.1">
    <name>NotifysrvPlugin</name>
    <description>NotifysrvPlugin Description</description>
    <author>elon</author>
    <license>Apache 2.0 License</license>
    <engines>
        <engine name="cordova" version=">=3.0.0" />
    </engines>
    <js-module src="www/notifysrv.js" name="notifysrv">
        <clobbers target="Notify" />
    </js-module>
    <platform name="android">
        <source-file src="src/android/NotifysrvPlugin.java"
        target-dir="src/com/elon/cordova/plugin" />
        <config-file target="res/xml/config.xml" parent="/*">
            <feature name="NotifysrvPlugin">
                <param name="android-package" value="com.elon.cordova.plugin.NotifysrvPlugin"/>
            </feature>
        </config-file>
        <config-file target="AndroidManifest.xml" parent="/*">
            <uses-permission android:name="android.permission.VIBRATE" />
        </config-file>
    </platform>
</plugin>

NotifysrvPlugin.java

package com.elon.cordova.plugin;

import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaWebView;
import org.apache.cordova.CordovaInterface;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.content.Context;
import android.support.v4.app.NotificationCompat;

public class NotifysrvPlugin extends CordovaPlugin {
    public static final String TAG = "NotifysrvPlugin";
    public static final String iconname = "icon";//icon res name

    public NotificationManager nm;
    public Context m_context;
    public void initialize(CordovaInterface cordova, CordovaWebView webView) {
        super.initialize(cordova, webView);
        m_context = this.cordova.getActivity().getApplicationContext();
        nm = (NotificationManager) m_context.getSystemService(android.content.Context.NOTIFICATION_SERVICE);
    }

    @Override
    public boolean execute(String action, JSONArray args,
    CallbackContext callbackContext) throws JSONException {
        if ("send".equals(action)) {
            String title = args.getString(0);
            String text = args.getString(1);  

            PendingIntent  m_PendingIntent=PendingIntent.getActivity(this.cordova.getActivity(),
                    0, this.cordova.getActivity().getIntent(), 0);
            int iconResID = m_context.getResources().getIdentifier(iconname,"drawable", m_context.getPackageName());
            Notification notification = new NotificationCompat.Builder(m_context)
            .setContentTitle(title)
            .setContentText(text)
            .setDefaults(Notification.DEFAULT_ALL) //设置默认铃声,震动等
            .setSmallIcon(iconResID)
            .setContentIntent(m_PendingIntent)
            .setAutoCancel(true)
        //    .setLargeIcon(aBitmap)
            .build();

            nm.notify(1, notification);
            callbackContext.success();
            return true;
        }
        return false;
    }
}

notifysrv.js

var argscheck = require(‘cordova/argscheck‘);
var exec = require(‘cordova/exec‘);

var Notify = function() {};

Notify.prototype.send = function(message, success, error) {
    //argscheck.checkArgs(‘AFF‘, ‘notify.send‘, arguments);
    console.log("send notification["+message[1]+"]");
    if(!message)
        error && error("please input message");
    else
        exec(success, error, ‘NotifysrvPlugin‘, ‘send‘, message);
};

var notify = new Notify();
module.exports = notify;

将插件加入cordova工程的办法

进入CMD,进入cordova工程文件夹,然后输入如下命令

cordova plugin add  [插件目录]

使用本插件的方法:

            var msg = ["新消息标题","新的消息内容"];
            Notify.send(msg,function(){
                console.log("成功");
            },function(msg){
                console.log(msg || "失败");
            });
    

时间: 2024-10-25 10:14:24

cordova的android notify消息通知插件的相关文章

Android消息通知-Notifation

Android中常用的消息提醒,一种是Toast弹出提醒内容,一种是AlterDialog弹出框来提醒用户,还有一种就是消息通知的,用Android经常收到各种通知就是Notifation.Notification是一种具有全局效果的通知,展示在屏幕顶端,表现一个图标的形式,当用户向下滑动的时候,展示出通知具体的内容. Notifation概念 Android很多东西存在版本兼容性问题Android3.0是一个之前在其之前构建Notification推荐使用Notification.Builde

基于Animate.css的炫酷jQuery消息通知框插件

notification是一款基于Animate.css的炫酷jQuery消息通知框插件.该插件可以在屏幕的四个角显示消息通知框,结合Animate.css可以制作出多种效果非常炫酷的CSS3动画特效. 在线预览   源码下载 使用方法 使用该jQuery消息通知框插件需要引入jQuery,notification.js,animate.css和notification.css文件. <link rel='stylesheet' href='css/animate.min.css'> <

Android学习—Notification消息通知

最近在项目中需要使用消息通知,自己把它封装成了一个方法,需要的时候方便调用, 下面对Notification类中的一些常量,字段,方法简单介绍一下: 常量: DEFAULT_ALL    使用所有默认值,比如声音,震动,闪屏等等 DEFAULT_LIGHTS 使用默认闪光提示 DEFAULT_SOUNDS 使用默认提示声音 DEFAULT_VIBRATE 使用默认手机震动 [说明]:加入手机震动,一定要在manifest.xml中加入权限: <uses-permission android:na

Android中的消息通知Toast和Notification

Android中的消息通知Toast和Notification 1.弹出通知Toast MainActivity.java 1 package com.example.toast; 2 3 import android.os.Bundle; 4 import android.app.Activity; 5 import android.view.Gravity; 6 import android.view.Menu; 7 import android.view.View; 8 import an

Android中的消息通知(NotificationManager和Notification)

下面来谈谈notification,这个notification一般用在电话,短信,邮件,闹钟铃声,在手机的状态栏上就会出现一个小图标,提示用户处理这个通知,这时手从上方滑动状态栏就可以展开并处理这个快讯.已添加的Notification.Builder,使其更容易构建通知.notification是一种让你的应用程序在没有开启情况下或在后台运行警示用户.它是看不见的程序组件(Broadcast Receiver,Service和不活跃的Activity)警示用户有需要注意的事件发生的最好途径.

Android移动APP开发笔记——Cordova(PhoneGap)通过CordovaPlugin插件调用 Activity 实例

引言 Cordova(PhoneGap)采用的是HTML5+JavaScript混合模式来开发移动手机APP,因此当页面需要获取手机内部某些信息时(例如:联系人信息,坐标定位,短信等),程序就需要调用手机内部的API跟页面进行信息交换.Cordova 特别为此定制了完善的解决方案,以方便用户进行程序编辑.在这一章里将为大家逐一介绍Cordova与Actitity通讯的实现原理. 目录 一.CordovaPlugin类简介 二.页面通过 cordova.exec 函数调用 CordovaPlugi

强大的响应式jQuery消息通知框和信息提示框插件

lobibox是一款功能非常强大的jQuery消息通知框和信息提示框插件.这个插件分为两个部分:消息通知框和信息提示框.它能非常好的结合Bootstrap使用. 信息提示框 lobibox的信息提示框可以是模态窗口,也可以不是模态窗口. 允许显示多条信息. 允许使用任何可用的CSS动画来显示和隐藏信息提示框. 信息提示框可以显示不同的颜色和图标. 可以设置为确认信息提示框. 可以设置为一行的prompt信息框.(可以使用任何HTML5的输入框类型来作为prompt) 也可以设置为多重prompt

歪兔工具条(YToolsforArcMap)简介之ArcMap插件进度消息通知窗口的实现

一个简单ArcMap插件进度消息通知窗口的实现方法. 一个进度窗体 ①搞一个label,塞进一个gif动图,让窗体Show出来的时候一直转啊转啊转: ②搞一个label写点提示文字“请稍等”啥的:再搞一个label用来显示进度. 进度Form的代码如下: 一个进度窗体管理器 ProgressFormManger 代码如下: 进度消息的传递机制 一个委托 public delegate void ProgressChangedEventHandler(object o,ProgressChange

【Android】状态栏通知Notification、NotificationManager详解(转)

在Android系统中,发一个状态栏通知还是很方便的.下面我们就来看一下,怎么发送状态栏通知,状态栏通知又有哪些参数可以设置? 首先,发送一个状态栏通知必须用到两个类:  NotificationManager . Notification. NotificationManager :  是状态栏通知的管理类,负责发通知.清楚通知等. NotificationManager 是一个系统Service,必须通过 getSystemService()方法来获取. [java] view plainc