You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
128 lines
5.4 KiB
128 lines
5.4 KiB
// |
|
// JCPush.h |
|
// JCSDKOC |
|
// |
|
// Created by maikireton on 2017/9/14. |
|
// Copyright © 2017年 juphoon. All rights reserved. |
|
// |
|
|
|
#import <Foundation/Foundation.h> |
|
#import "JCPushTemplate.h" |
|
|
|
/** |
|
* @defgroup 推送模块 |
|
* @{ |
|
* 用于管理推送 |
|
*/ |
|
|
|
/** |
|
* 推送类,其中的接口请在登录成功后调用 |
|
*/ |
|
@interface JCPush : NSObject |
|
|
|
/** |
|
* 创建 JCPush 对象 |
|
* |
|
* @param client JCClient 对象 |
|
* @return 返回 JCPush 对象 |
|
*/ |
|
+(JCPush*)create:(JCClient*)client; |
|
|
|
/** |
|
* 销毁 JCPush 对象 |
|
* |
|
* 该方法为同步调用,需要等待 JCPush 实例资源释放后才能执行其他操作,调用此方法后,你将无法再使用 JCPush 的其它方法和回调。<br> |
|
* 我们 **不建议** 在 JCSDK 的回调中调用此方法销毁 JCPush 对象,否则会出现崩溃。<br> |
|
* 如需在销毁后再次创建 JCPush 实例,需要等待 @ref destroy 方法执行结束后再创建实例。 |
|
*/ |
|
+(void)destroy; |
|
|
|
/** |
|
* 添加推送模板,用于服务器将不同类型的推送以不同的内容格式推给客户端 |
|
* |
|
* @param info 推送信息 |
|
*/ |
|
-(void)addPushInfo:(JCPushTemplate*)info; |
|
|
|
/** |
|
* 添加自定义推送模板,用于服务器将不同类型的推送以不同的内容格式推给客户端,登录成功后调用 |
|
* @param pushTemplate json格式字符串 包含Token模板,通话模板和消息模板,可以根据需要选择对应的模板进行配置,但是最终的json必须包含Token模板 |
|
* 格式为: |
|
* { |
|
//通话推送模板格式, JCCall 使用 |
|
"Notify.APNS.AppId": "注册推送服务的AppId,需要与您在Juphoon网站上传证书时填入的AppId一致", |
|
"Notify.APNS.Invite.ResendCount": "推送内容重发次数,会加1", //例如填5,则会发送6次 |
|
"Notify.APNS.Invite.ResendTimeout": "推送通知重发的超时时间,即每次重发的时间间隔,单位为妙", |
|
"Notify.APNS.Invite.Expiration": "推送过期时间", |
|
"Notify.APNS.Token": "注册推送时苹果下发的设备令牌,需转为16进制字符串" |
|
"Notify.APNS.Invite.Payload": { // 推送的内容,必须包含一个aps键 |
|
"aps": { |
|
"alert": { |
|
"loc-args": ["${Caller}"], // ${Caller}表示服务器传入的主叫userId,如果主叫设置了昵称则显示昵称 |
|
"loc-key": "${MediaType} call from %@" //${MediaType}表示服务器传入的呼叫类型(视频或音频),%@将会被 loc-args 中的宏定义替代 |
|
}, |
|
"sound": "%@" //通知铃声,值为APP资源文件内或者Library/Sounds文件夹内的铃声文件名,如果文件不能被找到或者设置了默认值,则会使用系统默认铃声 |
|
}, |
|
"callid": "${CallId}", // ${CallId}表示服务器生成的callid |
|
"resend": "${ResendIndex}" //${ResendIndex}表示服务器返回的第几次重发 |
|
}, //Payload可灵活配置,具体参考官网,https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CreatingtheNotificationPayload.html#//apple_ref/doc/uid/TP40008194-CH10-SW1 |
|
|
|
//文本类消息推送模板格式 JCMessageChannel 使用 |
|
"Notify.APNS.Message.Info.text.Expiration": "推送消息过期时间", // text 为 sendMessage 中传入的 type |
|
"Notify.APNS.Message.Info.text.Payload":{ // 推送的内容,必须包含一个aps键 |
|
"aps": { |
|
"alert": { |
|
"loc-key": "收到来自%@的消息: %@", // %@将会被 loc-args 中的宏定义替代 |
|
"loc-args": ["${Sender}", "${Text}"] //${Sender}表示服务器传入的消息发送者,${Text}表示消息的内容 |
|
}, |
|
"badge": 1, // 代表app图标右上角的消息数,如果不包含这个key值,消息数量不会改变,如果要删掉这个 badge,则把对应的key值设为0即可 |
|
|
|
"sound": "default" // 当推送信息送达时手机播放的声音,传defalut就标明使用系统默认声音 |
|
}, |
|
"to": "${Receiver}" //${Receiver}表示服务器传入的消息接收对象 |
|
} |
|
} |
|
* |
|
*例如: |
|
{ |
|
"Notify.APNS.AppId": "com.juphoon.cloud.JCSample", // APNS生产环境 |
|
//"Notify.APNS.AppId": "com.juphoon.cloud.JCSample.DEBUG", // APNS沙盒环境 |
|
//"Notify.APNS.AppId": "com.juphoon.cloud.JCSample.VOIP", // VOIP 生产环境 |
|
//"Notify.APNS.AppId": "com.juphoon.cloud.JCSample.VOIP.DEBUG", // VOIP 沙盒环境 |
|
"Notify.APNS.Token": "640652DF9891C3CDD7AB30086697713233AAA72F74924A36FAC3C1E60B30AF16", |
|
"Notify.APNS.Invite.ResendCount": "3", |
|
"Notify.APNS.Invite.ResendTimeout": "3", |
|
"Notify.APNS.Invite.Expiration": "3", |
|
"Notify.APNS.Invite.Payload": { |
|
"aps": { |
|
"alert": { |
|
"loc-args": ["${Caller}", "${MediaType}"], |
|
"loc-key": "收到%@的%@来电" |
|
}, |
|
"sound": "default" |
|
}, |
|
"callid": "${CallId}", |
|
"resend": "${ResendIndex}" |
|
}, |
|
"Notify.APNS.Message.Info.text.Expiration": "20", |
|
"Notify.APNS.Message.Info.text.Payload": { |
|
"aps": { |
|
"alert": { |
|
"loc-key": "收到来自%@的消息: %@", |
|
"loc-args": ["${Sender}", "${Text}"] |
|
}, |
|
"badge": 1, |
|
"sound": "default" |
|
}, |
|
"to": "${Receiver}" |
|
} |
|
} |
|
* |
|
*/ |
|
-(void)addPushTemplate:(NSString *)pushTemplate; |
|
|
|
@end |
|
|
|
/** |
|
* @} |
|
*/
|
|
|