推送插件(个推)

该插件集成了个推平台的推送功能

 

个推平台 http://www.getui.com/cn/index.html

 

进入开发者中心登记应用,可参考http://docs.getui.com/getui/mobile/ios/demo/

 

1、创建个推开发者账号(若已有个推账号则直接跳至第几步)

2、登记新应用:创建好账号进入个推开发者中心,点击左上角【登记应用】按钮,如下图所示


在登记应用界面填写应用名和应用标识,如需要IOS平台,则勾选iOS选项,并且上传正确的沙箱环境APNs证书


iOS需要上传对应的带密码的p12格式APNs证书(push证书)ios推送证书的申请和使用配置 参考链接:http://www.applicationloader.net/blog/zh/1787.html

查看应用配置,记录新建应用的AppIDAppKeyAppSecret,如下图所示

获取到AppIDAppKeyAppSecret参数后则可以配置个推插件,注意在个推平台上填写的安卓应用标识必须与项目的包名(或IOS bundleid)一致,否则无法推送,ios的推送证书也需要与项目匹配才可进行IOS端的推送。

插件的配置

在平台注册号配置参数后,需要配置AppIDAppKeyAppSecret,三个参数的值



注意:正确的完成个推平台上的应用注册获取到AppID、AppKey、AppSecret参数,并在该插件的plugin.xml文件正确配置后,才能给正常初始化并使用该推送插件。

发送推送消息

可以通过使用个推开发者中心对相应的应用发送推送消息


个推开发者中心提供的推送的方式有:推送通知,透传消息,分组对比(分组推送)三种,需要注意的是IOS只能接受透传消息,安卓端接受透传消息并不会在消息中心中显示。建议另外集成个推的Java服务端后台代码进行推送



插件对象:GeTuiSdk

插件初始化

GeTuiSdk.initialize();

停止SDK个推推送插件

GeTuiSdk.stopService();

收到推送的回调处理

GeTuiSdk.setGeTuiSdkDidReceivePayloadCallback(callback)

callback回调方法返回推送消息的data对象(属性payloadMsg、type、taskId、msgId)

      payloadMsg:推送内容

      type: 有两种类型receive收到消息,clicked点击了消息中心的消息

      taskId推送任务id

      msgId推送消息id

推送消息处理例子:

//收到推送的回调处理
GeTuiSdk.setGeTuiSdkDidReceivePayloadCallback(receiveCallBack);
function receiveCallBack(data){
	//收到推送消息的处理,data是json对象
	alert("收到推送:"+JSON.stringify(data));
	//消息内容
	var msg=data.payloadMsg;
	if(data.type=="receive"){
		//收到推送
		//To do something
		
	}else if(data.type=="clicked"){
		//点击了消息  
	   //To do something
	}
}


完整例子js代码:

document.addEventListener("deviceready", initializePush, false);

//完成注册clientid的回调处理
function didRegisterClientCallback(cid){
	 alert("cid="+cid);
	
}
//收到推送的回调处理
function receiveCallBack(data){
    //收到推送消息的处理,data是json对象,包含推送消息内容
   alert("收到推送:"+JSON.stringify(data));
	  
}

function initializePush(){

    //注册事件的回调方法
    GeTuiSdk.setGeTuiSdkDidRegisterClientCallback(didRegisterClientCallback);
    GeTuiSdk.setGeTuiSdkDidReceivePayloadCallback(receiveCallBack);
    //初始化插件
    GeTuiSdk.initialize();
	 
	
   var platform=null;
   platform=GeTuiSdk.platform();
   //如果需要针对客户端平台执行某些操作
   if(platform=="android"){
      //do something in android
   }else if(platform=="ios"){
     //do something in ios
     
   }
}


也可以增加一些事件的回调处理,callback为回调方法,可根据实际需求替换相应的回调处理,注意某些事件的回调是否同时兼容安卓和苹果

            GeTuiSdk.getVersion(callback);
GeTuiSdk.setGeTuiSdkDidRegisterClientCallback(callback);
GeTuiSdk.setGeTuiSdkDidReceivePayloadCallback(callback);
GeTuiSdk.setGeTuiSdkDidSendMessageCallback(callback); GeTuiSdk.setGeTuiSdkDidOccurErrorCallback(callback); GeTuiSdk.setGeTuiSDkDidNotifySdkStateCallback(callback); GeTuiSdk.setGeTuiSdkDidSetPushModeCallback(callback); GeTuiSdk.setGeTuiSdkDidAliasActionCallback(callback); GeTuiSdk.voipRegistrationWithVoipPushCallback(callback);

GetuiSdk对象对于安卓和IOS平台提供的方法存在一定的差异性,特别是在回调方法的使用有所不同,下面具体看看

GeTuiSdk 提供的方法

方法使用适用平台参数作用
GeTuiSdk.platform()IOS/Android返回字符串"ios"或"android" 
GeTuiSdk.initialize()IOS/Android通过plugin.xml配置AppID、AppKey、AppSecret的方式,初始化个推插件,IOS端默认执行注册APNS远程推送的DeviceToken
GeTuiSdk.startSdkWithAppId(appid, appKey, appSecret)IOSappid:个推登记应用的appid
appKey:个推登记应用的appKey
appSecret:个推登记应用的appSecret
通过传参AppID、AppKey、AppSecret的方式,初始化个推插件,默认执行注册APNS远程推送的DeviceToken
GeTuiSdk.getVersion(callback)IOS/Androidcallback回调方法获取当前个推sdk版本号
GeTuiSdk.getClientId(callback)IOS/Androidcallback回调方法回个推推送的clientId
GeTuiSdk.stopService()IOS/Android停止SDK个推推送插件
GeTuiSdk.registerDeviceToken()IOS注册APNS远程推送的DeviceToken,ios通过apns才可以进行消息中心的推送提醒
GeTuiSdk.turnOffPush()IOS/Android关闭Push推送, 关闭后则无法收到推送消息
GeTuiSdk.turnOnPush()IOS/Android开启Push推送, 默认是开启状态, 关闭状态则收不到推送
GeTuiSdk.isPushTurnedOn(callbak)Androidcallback回调方法获取当前SDK的服务状态。
GeTuiSdk.status(callback)IOScallback回调方法返回个推插件当前状态
GeTuiSdk..setSilentTime(callback, beginHour, duration)Androidcallback回调方法
beginHour 开始时间
duration持续时间
设置静默时间,静默期间SDK将不再联网
GeTuiSdk.setTag(callback, tags)IOS/Androidcallback回调方法
tags标签名
为当前用户设置一组标签,后续推送可以指定标签名进行定向推送。例如'man,women,old'
GeTuiSdk.bindAlias(callback,alias)IOS/Androidcallback回调方法
alias:别名名称,长度40字节,支持中、英文(区分大小写)、数字以及下划线
绑定别名
GeTuiSdk.unbindAlias(callback,alias)IOS/Androidcallback回调方法
alias:别名名称,长度40字节,支持中、英文(区分大小写)、数字以及下划线
解除当前clientid此别名的绑定
GeTuiSdk.unAllBindAlias(callback,alias)IOS/Androidcallback回调方法
alias:别名名称,长度40字节,支持中、英文(区分大小写)、数字以及下划线
解除所有clientid此别名的绑定
GeTuiSdk.setChannelId(channelId)IOSchannelId:渠道信息设置渠道,根据用户分发的渠道进行设置,个推后台可根据渠道信息进行统计分析,生成报表。
GeTuiSdk.handleRemoteNotification(userInfo)IOSuserInfo: 接收到的APNs信息(json类型)处理远程推送消息 ,接收APNs通知栏展示信息,统计有效用户点击数       
GeTuiSdk.sendMessage(successCallback, errorCallback, message)IOSsuccessCallback:发送成功的回调, errorCallback:发送失败的回调, message:发送的数据SDK发送上行消息
GeTuiSdk.sendFeedbackMessage(callback, actionId, taskId, msgId)IOS/Androidcallback:回调方法,
 actionId:用户自定义的actionid,int类型,取值90001-90999,
taskId:下发任务的任务ID,
msgId:下发任务的消息ID
上行第三方自定义回执,汇报个推自定义事件
GeTuiSdk.runBackgroundEnable(isEnable)IOSisEnable:布尔类型当APP进入后台后,允许个推插件后台允许
GeTuiSdk.runBackgroundDisable(isEnable)IOSisEnable:布尔类型当APP进入后台后,不允许个推插件后台允许
GeTuiSdk.setBadge(badge)IOSbadge设置的角标值, 取值范围:[0, 99999]设置角标功能,同步服务器角标计数
GeTuiSdk.resetBadge()IOS复位角标功能,设置服务器角标计数为0。
GeTuiSdk.clearAllNotificationForNotificationBar()IOS清空通知,清空下拉通知栏全部通知,并将角标置 0,即不显示角标。
GeTuiSdk.setGeTuiSdkDidRegisterClientCallback(callback)IOS/Androidcallback回调方法,回调方法中返回参数clientidSDK登入成功返回clientId,当成功注册时,SDK通知应用注册成功获取到ClientId,回调处理,注册成功仅表示推送通道建立,如果appid/appkey/appSecret等验证不通过,依然无法接收到推送消息,请确保验证信息正确。
GeTuiSdk.setGeTuiSdkDidReceivePayloadCallback(callback)IOS/Androidcallback回调方法,回调方法中返回推送消息的data对象(属性payloadMsg、type、taskId、msgId)设置个推收到消息时的回调方法
GeTuiSdk.setGeTuiSdkDidSendMessageCallback(callback)IOScallback回调方法通知发送上行消息结果,收到sendMessage消息回调
GeTuiSdk.setGeTuiSdkDidOccurErrorCallback(callback)IOScallback回调方法运行遇到错误消息返回Error,初始化异常或者运行时出现错误,由该接口返回错误信息
GeTuiSdk.setGeTuiSDkDidNotifySdkStateCallback(callback)IOScallback回调方法插件运行状态通知, SDK初始化到ClientId登入成功为正在启动状态, ClientId登入成功为启动状态, SDK调用Destory销毁SDK为停止状态。
GeTuiSdk.setGeTuiSdkDidSetPushModeCallback(callback)IOScallback回调方法设置个推插件 设置推送模式的回调方法
GeTuiSdk.setGeTuiSdkDidAliasActionCallback(callback)IOScallback回调方法 处理 绑定/解绑别名 的回调方法