当前位置:首页 > 开发 > 移动开发 > 正文

【Cordova2.9】 本地通知Notification插件开发

发表于: 2013-07-06   作者:dinguangx   来源:转载   浏览次数:
摘要: 本文目的:通过一个简单的本地通知插件开发来熟悉PhoneGap插件开发流程 PhoneGap(Cordova)是一个用来搭起js & html与原生Android沟通的桥梁,在phoneGap中,所有的js与原生android代码交互都通过插件机制完成。官方发布的phoneGap中已经提供了一些常用的插件,但这些插件在实际应用中还远远不够,仍然需要自行扩展大量的插件来满足应用的需求。在p

本文目的:通过一个简单的本地通知插件开发来熟悉PhoneGap插件开发流程

PhoneGap(Cordova)是一个用来搭起js & html与原生Android沟通的桥梁,在phoneGap中,所有的js与原生android代码交互都通过插件机制完成。官方发布的phoneGap中已经提供了一些常用的插件,但这些插件在实际应用中还远远不够,仍然需要自行扩展大量的插件来满足应用的需求。在phoneGap中,开发一个插件是一件相当简单的事情,在本文提到的本地通知插件中,包含了一个send函数,用来调用Android原生的Notification在任务栏发出通知信息,该函数接收的JsonArray格式为[title,text],即通知的标题和内容信息。

后台插件类代码为:

public class NotificationPlugin extends CordovaPlugin {
	@Override
	public boolean execute(String action, JSONArray args,
			CallbackContext callbackContext) throws JSONException {
		if ("send".equals(action)) {
			NotificationManager manager = (NotificationManager) this.cordova
					.getActivity().getSystemService(
							Context.NOTIFICATION_SERVICE);

			String title = args.getString(0);
			String text = args.getString(1);
			System.out.println("需要发送的信息..." + text);

			Notification notification = new Notification(R.drawable.icon, text,
					System.currentTimeMillis());

			notification.setLatestEventInfo(this.cordova.getActivity(), title,
					text, PendingIntent.getActivity(this.cordova.getActivity(),
							0, this.cordova.getActivity().getIntent(), 0));

			manager.notify(1, notification);

			return true;
		} else {
			return false;
		}
	}
}

 将该插件注册给PhoneGap:

<feature name="Notify">
  <param name="android-package" value="org.dylan.phonegap.plugins.NotificationPlugin"/>
</feature>

 前台的插件注入代码为:

(function(cordova) {
	var define = cordova.define;

	define("cordova/plugin/notify",function(require, exports, module){
		var argscheck = require('cordova/argscheck'),
	    exec = require('cordova/exec');
		exports.send=function(message,successCB,failCB){
				argscheck.checkArgs('AFF', 'notify.send', arguments);
				console.log("send notification["+message[1]+"]");
		        if (!message) {
		        	failCB && failCB("请输入要通知的信息.");
		        } else {
		            exec(successCB, failCB, "Notify", "send", message);
		        }
			};
	});
	cordova.addConstructor(function() {
		if (!window.plugins) {
			window.plugins = {};
		}
		console.log("将插件注入cordova...");
		window.plugins.notify = cordova.require("cordova/plugin/notify");
		console.log("注入结果:" + typeof(window.plugins.notify));
	});
})(cordova);

 在应用中使用该插件的示例如下:

var msg = ["新消息","消息内容"];
window.plugins.notify.send(msg,function(){
	alert("成功");
},function(msg){
	alert(msg || "失败");
});

 

【Cordova2.9】 本地通知Notification插件开发

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
最近在看消息推送,从服务端向客户端推送消息。虽然现在有C2DM,AndroidPN,还有第三方的推送平台,
最近在看消息推送,从服务端向客户端推送消息。虽然现在有C2DM,AndroidPN,还有第三方的推送平台,
本章节翻译自《Beginning-Android-4-Application-Development》,如有翻译不当的地方,敬请指出。
Toast简要说明:(前面已经用过好多次了) Toast是一种非持久的(在屏幕上面留一会儿就消失了),提供
Notification是Android中常用的一种通知方式,当有未读短信或者未接电话的时候,屏幕的状态栏就会有
Notification通知界面可以用自己定义的界面来显示。下面是我实现的带进度条的通知效果 下面是主要实
我们在用手机的时候,如果来了短信,而我们没有点击查看的话,是不是在手机的最上边的状态栏里有一
5.通知栏的提示(notification) 发送Notification,的基本步骤 1.调用getsystemService(NOTIFICATI
转于:http://www.cnblogs.com/plokmju/p/android_Notification.html ----------------------------
用过安卓的应该对通知栏消息都很熟悉了,下面是演示通知栏消息的一个Demo,首先来看一下界面,后面是代
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号