# 推送接口

合规指南:

  • 海外权限申请审核:以 iOS 官方权限申请描述为标准,暂无其他限制。
  • 国内权限申请审核:增加48小时限制,时限之内不允许申请(具体规定大家都在探索中)。

DANGER

  • 国内:集成的第三方推送服务,设备绑定的账号为SDK账号(accountId)。一个设备只能添加一个账号,一个账号可添加多个设备。
  • 海外:默认使用Firebase推送,研发无需额外接入,开放平台打包时会自动包含。如需定制推送主题,可接入如下方法。若需要Firebase推送token,请点击前往:接入准备文档中查询配置章节。

# 1、iOS 配置

在Target->Singing&Capabilities中点击+Capability,选择Push Notifications

然后选择Background Modes

其中Background Modes中选择remote notifications 最后效果图如下

导入推送库文件 在Targetr-Build Phases->Link Binary With Libraries中添加 UserNotifications.framework 库

代码使用 在AppDelegate.m中在系统的推送回调中添加SDK的方法

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
    NSLog(@"deviceToken:%@",deviceToken);
    [DHUnionSDK application:application didRegisterForRemoteNotificationWithDeviceToken:deviceToken];
}

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    [DHUnionSDK application:application didRecviveRemoteNotification:userInfo];
}

# 2、权限管理

# 2.1、申请权限

DANGER

建议游戏在登录成功后进行查询和申请,申请前建议展示对话框告知用途,被拒绝后国内须48小时内不得再次触发申请权限,海外无此限制。

权限申请流程如下:

[DHUnionSDK toolExtent:@{@"event_type":@"activePermission"} completion:^(NSError *error, NSDictionary *data) {
        if(error == nil){
            //申请推送权限成功
        }
        else{
            //申请推送权限失败
        }
    }];

# 2.2、查询权限

[DHUnionSDK toolExtent:@{@"event_type":@"queryPermission"} completion:^(NSError *error, NSDictionary *data) {
        if(error == nil){
            //查询推送权限成功
            NSString *result = data[@"result"]?:@"";
            if([result isEqualToString:@"true"]){
                //已开启推送权限
            }
            else{
                //尚未开启推送权限
            }
        }
        else{
            //查询推送权限失败
        }
    }];

# 2.3、撤销权限

DANGER

建议游戏在设置界面展示撤销推送权限的入口,通过SDK接口查询是否已有权限。若已有权限则提供按钮并调用SDK接口,根据SDK回调的状态进行UI更新

权限撤销流程如下:

[DHUnionSDK toolExtent:@{@"event_type":@"revokePermission"} completion:^(NSError *error, NSDictionary *data) {
        if(error == nil){
            //关闭推送权限成功
        }
        else{
            //关闭推送权限失败
        }
    }];

# 3、标签管理

# 3.1、添加标签

DANGER

一个设备可以绑定不限数量的标签,一个标签也可以绑定不限数量的设备。

[DHUnionSDK pushBindTag:@"tag1"];

# 3.2、参数标签

[DHUnionSDK pushUnBindTag:@"tag1"];
Last Updated: 2025/11/27 15:28:16