本文档提供关于 SDK 接入以及开启推送服务的示例代码。
AccessID
和 AccessKEY
。方式一:Cocoapods 导入
通过 Cocoapods 下载地址:
pod 'TPNS-macOS'
方式二:手动导入
进入控制台,单击左侧菜单栏【SDK 下载】,进入下载页面,选择 macOS 平台,在其操作栏下单击【下载】即可导入。
打开 demo 目录下的 XG-Demo-macOS 文件夹,将 XG_SDK_Cloud_macOS.framework 及 XGMTACloud_macOS.framework 添加到工程。
在 Build Phases 下添加以下 Framework:
* XG_SDK_Cloud_macOS.framework
* XGMTACloud_macOS.framework
* UserNotifications.framework(10.14+)
添加完成以后,TARGETS->General->Frameworks,Libraries,and Embedded Content
选项下Embed选择Embed&Sign 如下图:
Build Settings->Other Linker Flags
添加编译参数 -ObjC
。注意:如 checkTargetOtherLinkFlagForObjc 报错,是因为 build setting 中,Other link flags 未添加 -ObjC。
调用启动移动推送 的 API,并根据需要实现 XGPushDelegate 协议中的方法,开启推送服务。
启动移动推送服务,以下是在 AppDelegate 中做演示:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
/// 打开 Debug 模式,即可在终端查看详细的移动推送 TPNS Debug 信息,方便定位问题。
// [[XGPush defaultManager] setEnableDebug:YES];
[XGPush defaultManager].launchOptions = [[aNotification userInfo] mutableCopy];
[[XGPush defaultManager] startXGWithAccessID:TPNS_ACCESS_ID accessKey:TPNS_ACCESS_KEY delegate:self];
}
在 AppDelegate
中选择实现 XGPushDelegate
协议中的方法:
/// 注册推送服务成功回调
/// @param deviceToken APNs 生成的Device Token
/// @param xgToken TPNS 生成的 Token,推送消息时需要使用此值。TPNS 维护此值与APNs 的 Device Token的映射关系
/// @param error 错误信息,若error为nil则注册推送服务成功
}
}<span class="hljs-built_in">NSLog</span>(<span class="hljs-string">@"[TPNS Demo] click notification: %@"</span>, ((UNNotificationResponse *)response).notification.request.content.userInfo);
} else if ([response isKindOfClass:[NSDictionary class]]) {<span class="hljs-built_in">NSLog</span>(<span class="hljs-string">@"[TPNS Demo] click notification: %@"</span>, response);
}如果 Xcode 控制台显示如下相似日志,表明客户端已经正确集成 SDK。
javascript
[TPNS] Current device token is 2117b45c7e32bcdae2939f******57e420a376bdd44cf6f58613129d2065370
[TPNS] Current TPNS token is 0304b8f5d4e*****0af06b37d8b850d95606
[TPNS] The server responds correctly, registering device successfully
建议您完成 SDK 集成后,在 App 的【关于】、【意见反馈】等比较不常用的 UI 中,通过手势或者其他方式显示 Token,该操作便于我们后续进行问题排查。
objective-c
//获取 TPNS 生成的 Token
[[XGPushTokenManager defaultTokenManager] xgTokenString];
//获取 APNs 生成的 DeviceToken
[[XGPushTokenManager defaultTokenManager] deviceTokenString];
本页内容是否解决了您的问题?