注意:
如果您需要同时使用 Chat、 CallKit 、 RoomKit 、 LiveKit 等产品,请参考 IM 快速接入方案。 步骤1:集成 TIMPush
1. TIMPush 组件支持 cocoapods 集成,您需要在 Podfile 中添加组件依赖。
target 'YourAppName' do
# Uncommment the next line if you're using Swift or would like to use dynamic frameworks
use_frameworks!
use_modular_headers!
# Pods for Example
pod 'TXIMSDK_Plus_iOS_XCFramework'
# 版本号 “VERSION” 请前往 更新日志 中获取配置。 pod 'TIMPush', 'VERSION'
end
2. 执行以下命令,安装 TIMPush 组件。
pod install
pod repo update
步骤2:配置推送参数
1. 当您上传证书到 IM 控制台后,IM 控制台会为您分配一个证书 ID,见下图:
2. 您需要在 AppDelegate 中,实现 - businessID
协议方法返回证书 ID 即可。
#pragma mark - TIMPush
- (int)businessID {
int kBusinessID = 1234567;
return kBusinessID;
}
- (NSString *)applicationGroupID {
return kTIMPushAppGroupKey;
}
- (BOOL)onRemoteNotificationReceived:(NSString *)notice {
return NO;
}
步骤3:注册推送
调用接口推送注册成功后,就可以收到离线推送通知了。
const int sdkAppId = 您的 sdkAppId;
static const NSString *appKey = @"客户端密钥";
[TIMPushManager registerPush:sdkAppId appKey:appKey succ:^(NSData * _Nonnull deviceToken) {
} fail:^(int code, NSString * _Nonnull desc) {
}];
注意:
1. 当您登录后,在控制台上看到 APNs configuration success 日志打印时,即表示已成功接入。
2. 如果您的 App 已经获取到了推送权限,此时退入后台或者杀死进程,即可收到远程推送通知。
步骤4:发送推送消息
步骤5: 单击离线推送后自定义跳转
如果您需要自定义解析收到的远程推送,您可按照如下方法实现:
注意:
注册回调时机建议放在应用 AppDelegate 的 didFinishLaunchingWithOptions 函数中。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[TIMPushManager addPushListener:self];
return YES;
}
#pragma mark - TIMPushListener
- (void)onNotificationClicked:(NSString *)ext {
}
您需要在 AppDelegate.m 文件中实现 - onRemoteNotificationReceived
方法。
#pragma mark - TIMPush
- (BOOL)onRemoteNotificationReceived:(NSString *)notice {
return NO;
}
步骤6: 统计推送抵达率
2. 在 Notification Service Extension 的 -didReceiveNotificationRequest:withContentHandler:
方法中调用推送抵达率统计函数:
@implementation NotificationService
- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler {
NSString * appGroupID = kTIMPushAppGroupKey;
__weak typeof(self) weakSelf = self;
[TIMPushManager handleNotificationServiceRequest:request appGroupID:appGroupID callback:^(UNNotificationContent *content) {
weakSelf.bestAttemptContent = [content mutableCopy];
weakSelf.contentHandler(weakSelf.bestAttemptContent);
}];
}
@end
注意:
1. 上报推送触达数据,需要开启 mutable-content 开关来支持 iOS 10 的 Extension 功能。
2. 数据详情可在推送数据页面查看,推送数据页面仅限 购买推送插件 后使用。 关于全员/标签推送
全员/标签推送支持发送特定内容,还可根据标签、属性,针对特定用户群体发送个性化内容,例如会员活动、区域通知等,助力拉新、转化、促活等各个阶段运营工作的有效进行,同时支持推送送达报表,自助推送故障排查工具,具体效果请参见 效果展示。 恭喜您已经完成了推送插件的接入,需要提醒您:消息推送插件试用或购买到期后,将自动停止提供推送服务(包括普通消息离线推送、全员推送等服务)。为避免影响您业务正常使用,请提前购买/续费。
本页内容是否解决了您的问题?