##先决条件
##框架#####将以下框架添加到您的项目中
#####属性列表文件将以下属性添加到您的项目 plist 文件中
#####能力将以下后台模式添加到您的目标中
##设置 SDK
###Cocoapods
将以下行添加到项目 Podfile 中
pod 'Findrix'
###手动#####
##初始化
#import <Findrix/Findrix.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[Findrix start:@"userId" clientId:@"clientId" clientSecret:@"clientSecret" photo:devicePhoto callback:^(NSString *deviceId, NSError *error) {
if(error == nil) NSLog(@"Device created %@", deviceId);
else NSLog(@"Error creating device %@", error.description);
}];
];
}
- (void)applicationDidBecomeActive:(UIApplication *)application{
[Findrix activate];
}
#####参数
重要:别忘了调用 [Findrix activate]!
##推送通知首先步骤是在 Apple 开发者网站上创建 App ID 和相应的 SSL 证书。此证书将允许 Parse 服务器向由 App ID 识别的应用程序发送推送通知。如果您已经创建了 App ID 和相应的 SSL 证书,请将 p12 文件发送给 Findrix 开发团队(第 10 步 配置您的 App ID 以进行开发推送通知)
######生成证书请求要开始,我们需要一个证书签名请求(CSR)文件。此文件将用于验证 SSL 证书的创建。
######创建 App ID 每个安装在开发设备上的 iOS 应用程序都需要一个 App ID。按照惯例,这些用反向地址表示(例如,com.example.MyParsePushApp)。对于此推送应用程序,您可以使用已创建的 App ID,但请确保它不包含通配符字符 ("*")。以下说明涵盖创建新 App ID。
##为开发推送通知配置您的App ID 现在您已创建了App ID(或选择了一个现有的显式App ID),现在是时候配置App ID以用于推送通知了。
##创建配置文件 配置文件可验证您的设备以便运行您正在开发的软件。无论您是创建了一个新的App ID还是修改了一个现有的App ID,您都需要重新生成您的配置文件并安装它。如果您在使用现有配置文件时遇到困难,请尝试移除App ID并将其设置回原位。在这个教程中,我们将创建一个新的配置文件。
##注册设备 现在您必须为推送通知注册当前设备。如果您已经注册了您的设备用于推送通知,请转到第3步
#import <UserNotifications/UserNotifications.h>
@interface TRLSAppDelegate : UIResponder <UIApplicationDelegate, UNUserNotificationCenterDelegate>
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
- (void)registerDeviceForPushNotifications{
if( SYSTEM_VERSION_LESS_THAN( @"10.0" ) )
{
[[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
[[UIApplication sharedApplication] registerForRemoteNotifications];
}
else
{
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
center.delegate = self;
[center requestAuthorizationWithOptions:(UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionBadge) completionHandler:^(BOOL granted, NSError * _Nullable error)
{
if( !error )
{
[[UIApplication sharedApplication] registerForRemoteNotifications];
}
}];
}
}
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[self registerDeviceForPushNotifications];
}
在应用代理中实现回调方法 - application:didRegisterForRemoteNotificationsWithDeviceToken:。我们需要告诉Findrix关于这个新设备的信息
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
[Findrix setDeviceToken:deviceToken];
}
为实现通知,实现以下方法在应用代理中
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler{
[Findrix applicationDidReceiveRemoteNotification:userInfo];
}
- (void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler{
[Findrix applicationDidReceiveRemoteNotificationWithNotification:notification];
}
- (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler{
[Findrix applicationDidReceiveRemoteNotificationWithNotification:response.notification];
}
##自定义您的应用UI 一旦设置好您的库集成,您就可以自定义界面以匹配您的应用程序的颜色方案和品牌,以确保为用户提供最佳的用户体验。
导入类
#import <Findrix/FDXMessageAppearance.h>
您可以自定义以下属性
// Colors
[FDXMessageAppearance setTextColor:[UIColor blueColor]];
[FDXMessageAppearance setBackgroundColor:[UIColor grayColor]];
[FDXMessageAppearance setButtonBackgroundColor:[UIColor yellowColor]];
[FDXMessageAppearance setButtonTextColor:[UIColor greenColor]];
[FDXMessageAppearance setTitleColor:[UIColor blackColor]];
//Fonts
[FDXMessageAppearance setTitleFont:[UIFont systemFontOfSize:9.0]];
[FDXMessageAppearance setButtonTextFont:[UIFont boldSystemFontOfSize:18.0]];
[FDXMessageAppearance setTextFont:[UIFont italicSystemFontOfSize:12.0]];