Findrix 3.0.8

Findrix 3.0.8

测试已测试
Lang语言 Obj-CObjective C
许可证 Apache 2
发布最后发布2017年7月

Pitteri 维护。



Findrix 3.0.8

  • 作者
  • Maplink

##先决条件

  • iOS 8.0 或更高版本

##框架#####将以下框架添加到您的项目中

  • CoreLocation.framework
  • Foundation.framework
  • UIKit.framework
  • QuartzCore.framework
  • CoreGraphics.framework
  • SystemConfiguration.framework
  • libz.dylib
  • CoreTelephony.framework
  • AdSupport.framework

#####属性列表文件将以下属性添加到您的项目 plist 文件中

  • NSLocationAlwaysUsageDescription: 添加任何值,例如 "Location Services"

#####能力将以下后台模式添加到您的目标中

  • 远程通知

##设置 SDK

###Cocoapods
将以下行添加到项目 Podfile 中

    pod 'Findrix'

###手动#####

  1. 下载适用于 iOS 的 Findrix.framework SDK。
  2. 将 Findrix.framework 文件拖放到 Xcode 项目中,并将其放置在 Frameworks 文件夹下。

##初始化

#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];
    
}

#####参数

  • userId – 为此设备提供一个 ID(可以是 null 或空)
  • clientId – 使用 Findrix 开发团队请求客户端 ID
  • clientSecret – 使用 Findrix 开发团队请求客户端机密
  • devicePhoto - 可以是 null 或空
  • callback - 设备创建回调

重要:别忘了调用 [Findrix activate]!

##推送通知首先步骤是在 Apple 开发者网站上创建 App ID 和相应的 SSL 证书。此证书将允许 Parse 服务器向由 App ID 识别的应用程序发送推送通知。如果您已经创建了 App ID 和相应的 SSL 证书,请将 p12 文件发送给 Findrix 开发团队(第 10 步 配置您的 App ID 以进行开发推送通知)

######生成证书请求要开始,我们需要一个证书签名请求(CSR)文件。此文件将用于验证 SSL 证书的创建。

  1. 在您的 Mac 上启动 Keychain Access 应用程序。
  2. 选择菜单项 Keychain Access > Certificate Assistant > 从证书颁发机构请求证书...
  3. 输入您的电子邮件地址和姓名。
  4. 选择 "保存到磁盘" 以将 .certSigningRequest 文件下载到您的桌面。

######创建 App ID 每个安装在开发设备上的 iOS 应用程序都需要一个 App ID。按照惯例,这些用反向地址表示(例如,com.example.MyParsePushApp)。对于此推送应用程序,您可以使用已创建的 App ID,但请确保它不包含通配符字符 ("*")。以下说明涵盖创建新 App ID。

  1. 登录到苹果开发者会员中心网站(https://developer.apple.com/membercenter/index.action),然后选择证书、标识和配置文件。
  2. 在 iOS 应用程序部分选择标识。
  3. 您将看到您的 iOS App ID 列表。选择 + 按钮以注册新的 App ID。
  4. 输入新的 App ID 名称,然后确保选中 App 服务下的 Push Notifications 旁边的复选框。
  5. 选择一个App ID前缀。在大多数情况下,默认选择应该是正确的。
  6. 在App ID后缀下,选择显式App ID。输入您的iOS应用的Bundle ID。这个字符串应该与您的iOS应用Info.plist中的Bundle Identifier匹配。
  7. 选择“继续”,并确保所有值都已正确输入。应启用推送通知,标识符字段应与您的应用Bundle Identifier(加App ID前缀)匹配。选择“提交”以最终注册您的新App ID。

##为开发推送通知配置您的App ID 现在您已创建了App ID(或选择了一个现有的显式App ID),现在是时候配置App ID以用于推送通知了。

  1. 从iOS App ID列表中选择您刚创建的App ID,然后选择“设置”。
  2. 滚动到推送通知部分。在这里,您可以创建开发SSL证书和نتاجSSL证书。首先在“开发SSL证书”下选择“创建证书”。
  3. 下一屏幕将显示创建证书签名请求(CSR)的说明。这与您之前创建的相同的.certSigningRequest文件。选择“继续”,然后选择“选择文件...”,找到您创建的.certSigningRequest。
  4. 选择“生成”。一旦证书准备就绪,选择“完成”并从“iOS App ID设置”页面下载生成的SSL证书。
  5. 双击下载的SSL证书将其安装到您的Keychain中。
  6. 在Keychain Access中,在“我的证书”下找到您刚刚添加的证书。它应该是“Apple Development/Production IOS Push Services。”
  7. 右键单击它,选择“导出Apple Development IOS Push Services...”,并将其保存为.p12文件。您将被提示输入一个密码来保护导出的证书。输入密码“1234”。注意,您可能需要输入您的OS X密码以允许Keychain Access从您的密钥链中导出证书

##创建配置文件 配置文件可验证您的设备以便运行您正在开发的软件。无论您是创建了一个新的App ID还是修改了一个现有的App ID,您都需要重新生成您的配置文件并安装它。如果您在使用现有配置文件时遇到困难,请尝试移除App ID并将其设置回原位。在这个教程中,我们将创建一个新的配置文件。

  1. 登录到苹果开发者会员中心网站(https://developer.apple.com/membercenter/index.action),然后选择证书、标识和配置文件。
  2. 从iOS应用部分选择配置文件。
  3. 选择加号创建一个新的iOS配置文件。
  4. 选择“iOS应用开发”作为您的配置文件类型然后选择“继续”。
  5. 从下拉菜单中选择您创建的App ID,然后选择“继续”。
  6. 确保在下一屏幕中选择您的iOS开发/生产证书,然后选择“继续”。
  7. 在选择要测试的设备后将选择继续。
  8. 为此配置文件选择一个名称,例如“我的推送应用配置文件”,然后选择“生成”。
  9. 从下一屏幕选择“下载”按钮下载生成的配置文件。
  10. 通过双击下载的文件来安装配置文件。

##注册设备 现在您必须为推送通知注册当前设备。如果您已经注册了您的设备用于推送通知,请转到第3步

  • 更改AppDelegate.h
#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)
  • 在应用代理中创建registerDeviceForPushNotifications方法
- (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];
             }
         }];  
    } 
}
  • 在应用代理的application:didFinishLaunchingWithOptions:方法中在初始化Findrix之前调用registerDeviceForPushNotifications方法
- (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]];