首页 > 代码库 > cordova的android notify消息通知插件
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="http://www.mamicode.com/www/notifysrv.js" name="notifysrv"> <clobbers target="Notify" /> </js-module> <platform name="android"> <source-file src="http://www.mamicode.com/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="http://www.mamicode.com/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 || "失败"); });
cordova的android notify消息通知插件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。