测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可 | MIT |
发布最后发布 | 2017年3月 |
由Bogdan Laukhin,Alex Moskvin维护。
App Chains是轻松将实时个性化(RTP)编码到您的应用程序中的简单方法。使用此CocoaPod插件轻松添加App-Chains功能,用于Objective C iOS应用程序
搜索并查找应用程序链 -> https://sequencing.com/app-chains/
应用程序链是将API调用与应用程序用户的基因分析相结合的集成。每个应用程序链都提供有关特定特征、状况、疾病、补充剂或药物的信息。应用程序链用于向应用程序用户提供基因定制的内容,从而在基因级别立即实现用户体验的个性化。这被称为实时个性化(RTP)。
每个应用程序链包括
每个应用程序链由以下内容组成
示例
尽管已经有了用于个性化大多数应用程序的应用程序链,但如果您需要但没有看到应用程序链,请告诉我们!(例如,通过电子邮件:[email protected])。
要将实时个性化(RTP)技术编码到应用中,开发者可以在Sequencing.com免费注册一个账号:注册免费账号。使用RTP进行应用开发总是免费的。
您可以使用应用链来个性化哪些类型的应用?任何类型的应用...甚至是一个天气应用。
请按照此指南在现有项目或新项目中安装App-Chain模块
查看CocoaPods的一般说明:https://cocoapods.org.cn > getting started
在Xcode中创建一个新的项目
在项目目录中创建Podfile
$ pod init
在Podfile中指定sequencing-app-chains-api-objc
pod参数
pod 'sequencing-app-chains-api-objc', '~> 1.1.1'
将依赖项安装到您的项目中
$ pod install
始终打开Xcode工作区而不是项目文件
$ open *.xcworkspace
没有必须要执行的严格配置。
只需将应用链的源文件拖入项目,即可将实时个性化添加到您的应用中。
下面的代码片段包含以下三个占位符。请确保将每个占位符替换为实际值
<your token>
<chain id>
<file id>
AppChains Objective-C API概述
方法 | 目的 | 参数 | 描述 |
---|---|---|---|
- (instancetype)initWithToken:(NSString *)token |
构造函数 | token - sequencing.com提供的安全令牌 | |
- (instancetype)initWithToken:(NSString *)token withHostName:(NSString *)hostName |
构造函数 |
token - sequencing.com提供的安全令牌 hostName - API服务器主机名。默认为api.sequencing.com |
用于在需要报告API且需要安全令牌的情况下创建AppChains类实例的构造函数 |
- (void)getReportWithApplicationMethodName:(NSString *)applicationMethodName withDatasourceId:(NSString *)datasourceId withSuccessBlock:(void (^)(Report *result))success withFailureBlock:(void (^)(NSError *error))failure; |
报告API |
applicationMethodName - 数据处理程序名称 datasourceId - 输入数据标识符 success - 成功操作的回调,结果包含 Report 对象failure - 操作失败时的回调 |
|
- (void)getBatchReportWithApplicationMethodName:(NSArray *)appChainsParams withSuccessBlock:(ReportsArray)success withFailureBlock:(void (^)(NSError *error))failure; |
带批请求的报告API |
appChainsParams - 批请求的参数数组 每个参数应是一个包含项目的数组 第一个对象 - applicationMethodName 最后一个对象 - datasourceId success - 成功操作的回调,结果包含字典数组 每个字典都有以下键和对象 appChainID - 应用链 ID 字符串report - 报告对象failure - 操作失败时的回调 |
将代码添加到项目中
import "AppChains.h"
之后,您就可以开始利用 Reporting API 来执行单个链请求
AppChains *appChains = [[AppChains alloc] initWithToken:yourAccessToken withHostName:@"api.sequencing.com"];
[appChains getReportWithApplicationMethodName:@"<chain id>"
withDatasourceId:@"<file id>"
withSuccessBlock:^(Report *result) {
NSArray *arr = [result getResults];
for (Result *obj in arr) {
ResultValue *frv = [obj getValue];
if ([frv getType] == kResultTypeFile)
[(FileResultValue *)frv saveToLocation:@"/tmp/"];
}
}
withFailureBlock:^(NSError *error) {
NSLog(@"Error occured: %@", [error description]);
}];
使用批量请求 API 为多个链请求的示例
AppChains *appChains = [[AppChains alloc] initWithToken:yourAccessToken withHostName:@"api.sequencing.com"];
// parameters array for batch request as example
NSArray *appChainsForRequest = @[@[@"Chain88", fileID], @[@"Chain9", fileID]];
[appChains getBatchReportWithApplicationMethodName:appChainsForRequest
withSuccessBlock:^(NSArray *reportResultsArray) {
// @reportResultsArray - result of reports for batch request, it's an array of dictionaries
// each dictionary has following keys: "appChainID": appChainID string, "report": *Report object
for (NSDictionary *appChainReportDict in reportResultsArray) {
Report *result = [appChainReportDict objectForKey:@"report"];
NSString *appChainID = [appChainReportDict objectForKey:@"appChainID"];
NSString *appChainValue = [NSString stringWithFormat:@""];
if ([appChainID isEqualToString:@"Chain88"])
appChainValue = [self parseAndHandleReportForChain88:result]; // your own method to parse report object
else if ([appChainID isEqualToString:@"Chain9"])
appChainValue = [self parseAndHandleForChain9:result]; // your own method to parse report object
}
}
withFailureBlock:^(NSError *error) {
NSLog(@"batch request error: %@", error);
}];
每个应用链代码应无配置要求或问题,直接使用。
其他提示
确保以下三个占位符已替换为实际值
<your token>
<chain id>
<file id>
查看 Weather My Way +RTP 应用,这是一个开源天气应用,利用实时个性化提供基因定制内容
请确认您已经拥有来自本存储库的最新代码版本。
此存储库由 Sequencing.com 执勤维护。如果您需要更多相关信息或只是想说 hello,请通过以下链接联系 Sequencing.com 生物信息学团队:[email protected]
我们鼓励您积极地为我们进行分支。如果您有兴趣更新主分支,请发送拉取请求。如果有积极的贡献,我们会将其保留。