App Chains 是将实时个性化(RTP)轻松集成到您的应用中的方式。使用此用于 iOS 应用的 CocoaPods 插件轻松添加 App-Chains
功能。
搜索和查找应用链 -> https://sequencing.com/app-chains/
应用链是 API 调用和应用程序用户基因分析集成。每个应用链都提供有关特定特征、状况、疾病、补充剂或药物的信息。应用链用于向应用程序用户提供基因定制的内容,以便在基因水平上即时个性化用户体验。这称为 实时个性化(RTP)。
每个应用链包括
例如
虽然已经有很多应用链可以用于个性化大多数应用程序,但如果您需要某种服务却看不到相应的应用链,请告诉我们!(例如,通过电子邮件联系我们:[email protected])。
要将实时个性化(RTP)技术编码到应用中,开发者可以在 Sequencing.com 注册免费账户。使用 RTP 开发应用程序总是免费的。
您可以使用应用链个性化哪些类型的应用?任何类型的应用...甚至一个天气应用。
配置文件选择器插件:文件选择器插件 Swift (CocoaPods插件)
App-Chains的配置:以下代码示例包含以下三个占位符。请确保将每个占位符都替换为实际值
<你的令牌>
<链ID>
<文件ID>
AppChain模块包含封装在内部的逻辑框架(基于Objective-C语言)。AppChains Swift API概述
方法 | 目的 | 参数 | 描述 |
---|---|---|---|
init(token: String, withHostName: String) |
构造函数 |
token - Sequencing.com提供的安全令牌 Hostname - API服务器主机名。默认为api.sequencing.com |
当需要报告API并且需要安全令牌时,用于创建AppChains类实例的构造函数 |
func getReportWithApplicationMethodName(applicationMethodName: String!, withDatasourceId: String!, withSuccessBlock: ((Report!) -> Void)!, withFailureBlock: ((NSError!) -> Void)!) |
报告API |
applicationMethodName - 数据处理例程的名称 datasourceId - 输入数据标识符 成功 - 成功操作执行的回调,结果以 Report 对象返回失败 - 操作失败时执行的回调 |
|
func getBatchReportWithApplicationMethodName(appChainsParams: [AnyObject]!, withSuccessBlock: ReportsArray!, withFailureBlock: ((NSError!) -> Void)!) |
带有批量请求的报告API |
appChainsParams - 批量请求的参数数组。 每个参数应该是一个包含两个元素的数组 第一个对象 - applicationMethodName 最后一个对象 - datasourceId 成功 - 成功操作执行的回调,结果以ReportsArray数组返回 每个字典都有以下键和对象 appChainID - 应用链ID字符串report - 报告对象失败 - 操作失败时执行的回调 |
向项目中添加代码
首先,您需要创建桥接头文件。选择 File > New > File > Header File > 将其命名为
project-name-Bridging-Header.h
在桥接头文件中添加AppChains类导入
#import <AppChainsLibrary/AppChains.h>
在项目设置中注册您的桥接头文件。选择您的项目 > 项目目标 > Build Settings > Objective-C Bridging Header 指定桥接头文件的路径
$(PROJECT_DIR)/project-name-Bridging-Header.h
之后,您就可以开始使用 Reporting API 进行单个链请求,以下是一个示例
let appChainsManager = AppChains.init(token: accessToken as String, withHostName: "api.sequencing.com")
appChainsManager.getReportWithApplicationMethodName("Chain88", withDatasourceId: fileID, withSuccessBlock: { (result) in
let resultReport: Report = result as Report!
if resultReport.isSucceeded() {
if resultReport.getResults() != nil {
for item: AnyObject in resultReport.getResults() {
let resultObj = item as! Result
let resultValue: ResultValue = resultObj.getValue()
if resultValue.getType() == ResultType.Text {
print(resultObj.getName() + " = " + (resultValue as! TextResultValue).getData())
}
}
}
} else {
print("Error occured while getting genetic information")
}
}) { (error) in
print("Error occured while getting genetic information. " + error.localizedDescription)
}
使用批量请求API对多个链进行 操作的示例
let appChainsManager = AppChains.init(token: accessToken as String, withHostName: "api.sequencing.com")
let appChainsForRequest: NSArray = [["Chain88", fileID],
["Chain9", fileID]]
appChainsManager.getBatchReportWithApplicationMethodName(appChainsForRequest as [AnyObject], withSuccessBlock: { (resultsArray) in
let reportResultsArray = resultsArray as NSArray
for appChainReport in reportResultsArray {
let appChainReportDict = appChainReport as! NSDictionary
let resultReport: Report = appChainReportDict.objectForKey("report") as! Report;
let appChainID: NSString = appChainReportDict.objectForKey("appChainID") as! NSString;
if appChainID.isEqualToString("Chain88") {
appChainValue = self.parseReportForChain88(resultReport) // your own method to parse report object
print(appChainValue)
} else if appChainID.isEqualToString("Chain9") {
appChainValue = self.parseReportForChain9(resultReport) // your own method to parse report object
print(appChainValue)
}
}
}) { (error) in
print("batch request error. " + error.localizedDescription)
completion(appchainsResults: nil)
}
每个应用链代码都应直接运行,无需任何配置要求或问题。
其他提示
请确保以下三个占位符已被替换为真实值
<你的令牌>
<链ID>
<文件ID>
查看Weather My Way +RTP应用程序,它是一个开源的天气应用程序,使用实时个性化来提供基因定制的内容
确认您拥有此存储库的最新版本代码。
此存储库由Sequencing.com积极维护。如果您需要更多信息或只是想打招呼,请通过电子邮件联系[email protected]。
我们鼓励您热切地进行分支。如果您有兴趣更新主分支,请给我们发送拉取请求。如果更改具有积极的贡献,我们将保持这些更改。