测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可证 | MIT |
发布上次发布 | 2016年2月 |
由 Donky Networks Ltd 维护。
模块化 SDK 以一种方式公开了所有网络功能,这意味着开发者只需要消费他们所需要的部分
使用 Donky 作为数据网络允许开发者专注于编写应用代码,而无需担心构建可靠和安全的网络。互联网上传输数据的复杂性由 Donky 处理,允许开发者只构建他们的应用程序。
Donky 模块 SDK 的最低技术要求如下:
请在此处阅读我们的完整文档 http://docs.mobiledonky.com
Donky Networks Ltd,[email protected]
DonkySDK-iOS-Modular 受 MIT 许可证许可。有关更多信息,请参阅 LICENSE 文件。
请使用以下任何一种方法进行安装:
克隆 Git 仓库
git clone [email protected]:Donky-Network/DonkySDK-iOS-Modular.git
使用 CocoaPods
Please see below for all the information specific to the CocoaPods
如果您在使用或集成此 SDK 时有任何问题,请联系 [email protected]
我们接受 pull request!
只有当这是您打算使用的 SDK 的唯一部分时,才将其添加到 'PodFile' 中。如果您使用任何附加的可选模块,则不需要将其添加到 'Podfile' 中。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//Start analytics (optional)
[[DCAAnalyticsController sharedInstance] start];
//Initialise Donky with API key.
[[DNDonkyCore sharedInstance] initialiseWithAPIKey:@"API-KEY"];
return YES;
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//Start analytics (optional)
[[DCAAnalyticsController sharedInstance] start];
//Create a new user and populate with details. Country code is optional is NO mobile number is provided. If a
//mobile number is provided then a country code is mandatory. Failing to provide a country code that matches the
//mobile number will result in a server validation error.
DNUserDetails *userDetails = [[DNUserDetails alloc] initWithUserID:@""
displayName:@""
emailAddress:@""
mobileNumber:@""
countryCode:@""
firstName:@""
lastName:@""
avatarID:@""
selectedTags:@[]
additionalProperties:@{}];
//Initialise Donky with API key.
[[DNDonkyCore sharedInstance] initialiseWithAPIKey:@"API-KEY" userDetails:userDetails success:^(NSURLSessionDataTask *task, id responseData) {
NSLog(@"Successfully Initialised with user...");
} failure:^(NSURLSessionDataTask *task, NSError *error) {
NSLog(@"%@", [error localizedDescription]);
}];
return YES
}
您还必须调用您的应用的代理以下方法,以确保能够及时接收和处理自定义内容通知
为确保您的设备令牌发送到Donky网络
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
[DNNotificationController registerDeviceToken:deviceToken];
}
处理传入的通知,使用此方法可以让您的应用处理内容通知
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler {
[DNNotificationController didReceiveNotification:userInfo handleActionIdentifier:nil completionHandler:^(NSString *string) {
completionHandler(UIBackgroundFetchResultNewData);
}];
}
处理交互式通知(仅限iOS 8及以上版本)
- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forRemoteNotification:(NSDictionary *)userInfo completionHandler:(void (^)())completionHandler {
[DNNotificationController didReceiveNotification:userInfo handleActionIdentifier:identifier completionHandler:^(NSString *string) {
completionHandler();
}];
}
示例项目可以在这里找到
│
├───src
├───workspaces
├───Donky Core SDK Demo
Donky-Core-SDK可通过CocoaPods获取。要安装它,只需将以下行添加到您的Podfile中
pod "Donky-Core-SDK"
使用“简单推送”模块使您的应用能够接收简单推送消息。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//Start analytics (optional)
[[DCAAnalyticsController sharedInstance] start];
//Start push logic:
[[DPPushNotificationController sharedInstance] start];
//Initialise Donky
[[DNDonkyCore sharedInstance] initialiseWithAPIKey:@"API-KEY"];
return YES;
}
您还必须调用您的应用的以下代理
为确保您的设备令牌发送到Donky网络
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
[DNNotificationController registerDeviceToken:deviceToken];
}
处理传入的通知,使用此方法可以让您的应用处理内容通知
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler {
[DNNotificationController didReceiveNotification:userInfo handleActionIdentifier:nil completionHandler:^(NSString *string) {
completionHandler(UIBackgroundFetchResultNewData);
}];
}
处理交互式通知(仅限iOS 8及以上版本)
- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forRemoteNotification:(NSDictionary *)userInfo completionHandler:(void (^)())completionHandler {
[DNNotificationController didReceiveNotification:userInfo handleActionIdentifier:identifier completionHandler:^(NSString *string) {
completionHandler();
}];
}
示例项目可以在这里找到
│
├───src
├───workspaces
├───Donky Simple Push Logic Demo
pod "Donky-SimplePush-Logic"
将此包含在您的Podfile中将自动拉取以下其他模块,因为它们具有硬依赖。无需手动包含以下任何内容
以下代码示例是启动接收从Donky网络发送的简单推送消息以及利用我们预构建的UI将消息显示给用户所需的最小代码。它包含预构建的UI以显示按钮选项和报告用户选择的按钮以进行交互式通知。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//Start analytics (optional)
[[DCAAnalyticsController sharedInstance] start];
//Start the Push UI controller, there is no need to start the logic controller as well:
[[DPUINotificationController sharedInstance] start];
//Initialise Donky
[[DNDonkyCore sharedInstance] initialiseWithAPIKey:@"API-KEY"];
return YES;
}
您还必须调用您的应用的以下代理
为确保您的设备令牌发送到Donky网络
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
[DNNotificationController registerDeviceToken:deviceToken];
}
处理传入的通知,使用此方法可以让您的应用处理内容通知
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler {
[DNNotificationController didReceiveNotification:userInfo handleActionIdentifier:nil completionHandler:^(NSString *string) {
completionHandler(UIBackgroundFetchResultNewData);
}];
}
处理交互式通知(仅限iOS 8及以上版本)
- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forRemoteNotification:(NSDictionary *)userInfo completionHandler:(void (^)())completionHandler {
[DNNotificationController didReceiveNotification:userInfo handleActionIdentifier:identifier completionHandler:^(NSString *string) {
completionHandler();
}];
}
示例项目可以在这里找到
│
├───src
├───workspaces
├───Donky Simple Push UI Demo
pod "Donky-SimplePush-UI"
将此包含在您的Podfile中将自动拉取以下其他模块,因为它们具有硬依赖。无需手动包含以下任何内容
使用富消息模块使您的应用能够从网络接收富消息并将其保存到Donky的本地数据库中。然后,您可以通过提供的API在objective-c DRLogicMainController中检索和删除消息。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
//Start analytics controller (optional)
[[DCAAnalyticsController sharedInstance] start];
//Start the Rich Logic
[[DRLogicMainController sharedInstance] start];
//Initialise Donky
[[DNDonkyCore sharedInstance] initialiseWithAPIKey:@"API-Key"];
return YES;
}
您还必须调用您的应用的以下代理
为确保您的设备令牌发送到Donky网络
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
[DNNotificationController registerDeviceToken:deviceToken];
}
处理传入的通知,使用此方法可以让您的应用处理内容通知
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler {
[DNNotificationController didReceiveNotification:userInfo handleActionIdentifier:nil completionHandler:^(NSString *string) {
completionHandler(UIBackgroundFetchResultNewData);
}];
}
处理交互式通知(仅限iOS 8及以上版本)
- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forRemoteNotification:(NSDictionary *)userInfo completionHandler:(void (^)())completionHandler {
[DNNotificationController didReceiveNotification:userInfo handleActionIdentifier:identifier completionHandler:^(NSString *string) {
completionHandler();
}];
}
示例项目可以在这里找到
│
├───src
├───workspaces
├───Donky Rich Message Logic Demo
pod "Donky-RichMessage-Logic"
将此包含在您的Podfile中将自动拉取以下其他模块,因为它们具有硬依赖。无需手动包含以下任何内容
使用富消息模块以使您的应用能够接收富消息,并以弹出窗口的形式自动向用户显示。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
//Start the analytics controller (optional)
[[DCAAnalyticsController sharedInstance] start];
//Start the Rich Pop Up UI controller:
[[DRUIPopUpMainController sharedInstance] start];
//Optional Settings:
//Whether rich messages should be automatically deleted from the database after the user has dismissed the pop up (default = YES):
[[DRUIPopUpMainController sharedInstance] setAutoDelete:YES];
//The style in which the pop up should be presented for iPads (default = UIModalPresentationFormSheet):
[[DRUIPopUpMainController sharedInstance] setRichPopUpPresentationStyle:UIModalPresentationFormSheet];
[[DNDonkyCore sharedInstance] initialiseWithAPIKey:@"API-KEY"];
return YES;
}
您还必须调用您的应用的以下代理
为确保您的设备令牌发送到Donky网络
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
[DNNotificationController registerDeviceToken:deviceToken];
}
处理传入的通知,使用此方法可以让您的应用处理内容通知
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler {
[DNNotificationController didReceiveNotification:userInfo handleActionIdentifier:nil completionHandler:^(NSString *string) {
completionHandler(UIBackgroundFetchResultNewData);
}];
}
处理交互式通知(仅限iOS 8及以上版本)
- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forRemoteNotification:(NSDictionary *)userInfo completionHandler:(void (^)())completionHandler {
[DNNotificationController didReceiveNotification:userInfo handleActionIdentifier:identifier completionHandler:^(NSString *string) {
completionHandler();
}];
}
示例项目可以在这里找到
│
├───src
├───workspaces
├───Donky Rich Message PopUp Demo
pod "Donky-RichMessage-PopUp"
将此包含在您的Podfile中将自动拉取以下其他模块,因为它们具有硬依赖。无需手动包含以下任何内容
使用富消息模块使您的应用能够接收并在我们的预先构建的 UI 中显示富消息。
示例项目可以在这里找到
│
├───src
├───workspaces
├───Donky Rich Message Inbox Demo
pod "Donky-RichMessage-Inbox"
将此包含在您的Podfile中将自动拉取以下其他模块,因为它们具有硬依赖。无需手动包含以下任何内容
使用自动化模块以触发在 Campaign Builder/Donky Control 上设置的宣传活动。这里。
正常启动 Donky SDK 和分析控制器。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
//Start analytics module (optional)
[[DCAAnalyticsController sharedInstance] start];
//Initialise Donky
[[DNDonkyCore sharedInstance] initialiseWithAPIKey:@"API-KEY"];
return YES;
}
要触发一个触发器,可以使用以下任一方法
[DAAutomationController executeThirdPartyTriggerWithKey:@"Trigger-Key" customData:@{}];
[DAAutomationController executeThirdPartyTriggerWithKeyImmediately:@"Trigger-Key" customData:@{}];
示例项目可以在这里找到
│
├───src
├───workspaces
├───Donky Automation Demo
pod "Donky-Automation-Logic"
将此包含在您的Podfile中将自动拉取以下其他模块,因为它们具有硬依赖。无需手动包含以下任何内容
使用此模块可以使您针对不同的消息类型保存音频文件,并在接收到该类型消息时自动播放它们。这里。
启动控制器
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
[[DAMainController sharedInstance] start];
//Other donky modules or custom code:
return YES;
}
要设置声音文件,此方法接受文件的一个 NSURL。
[[DAMainController sharedInstance] setAudioFile:<#(NSURL *)#> forMessageType:<#(DonkyAudioMessageTypes)#>];
要播放声音文件
[[DAMainController sharedInstance] playAudioFileForMessage:<#(DonkyAudioMessageTypes)#>];
│
├───src
├───workspaces
├───Donky Audio
pod "Donky-CommonMessaging-Audio"
无
使用此模块可以使您无需实现回调或担心更改本机和网络状态时的顺序,即可对某些账户控制器方法进行多次调用。
此模块覆盖了以下方法内的内容:
DNSequencingAccountController
+ (void)updateAdditionalProperties:(NSDictionary *)newAdditionalProperties success:(DNNetworkSuccessBlock)successBlock failure:(DNNetworkFailureBlock)failureBlock;
+ (void)saveUserTags:(NSMutableArray *)tags success:(DNNetworkSuccessBlock)successBlock failure:(DNNetworkFailureBlock)failureBlock;
+ (void)updateUserDetails:(DNUserDetails *)userDetails success:(DNNetworkSuccessBlock)successBlock failure:(DNNetworkFailureBlock)failureBlock;
+ (void)updateRegistrationDetails:(DNUserDetails *)userDetails deviceDetails:(DNDeviceDetails *)deviceDetails success:(DNNetworkSuccessBlock)successBlock failure:(DNNetworkFailureBlock)failureBlock;
+ (void)updateDeviceDetails:(DNDeviceDetails *)deviceDetails success:(DNNetworkSuccessBlock)successBlock failure:(DNNetworkFailureBlock)failureBlock;
pod "Donky-Core-Sequencing"
将此包含在您的Podfile中将自动拉取以下其他模块,因为它们具有硬依赖。无需手动包含以下任何内容
您将永远不会需要手动将通用逻辑模块添加到您的应用程序中,它是PodSpec依赖,因此不需要手动添加到您的PodFile中。
您将永远不会需要手动将通用UI模块添加到您的应用程序中,它是PodSpec依赖,因此不需要手动添加到您的PodFile中。