本文档面向所有使用一点资讯开放平台SDK的开发、测试人员等, 要求读者具有一定的iOS编程开发经验。
一点资讯开放平台iOS SDK是一点资讯iOS开发团队推出的iOS平台上的个性化信息流推荐开发集成包(SDK),为iOS开发者提供简单、快捷的接口,帮助开发者实现iOS平台上的个性化信息流产品。
前往一点资讯开发者平台(http://developer.yidianzixun.com),根据文档创建账号并申请应用
程序启动时,在appDelegate.m文件中,初始化SDK。 代码示例:
(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[YDNewsFeedSDK initializeWithAppId:APPID appKey:APPKEY];
return YES;
}
调用方法:
+ (void)initializeWithAppId:(NSString * __nonnull)appId appKey:(NSString * __nonnull)appKey;
参数 | 类型 | 描述 |
---|---|---|
appId | NSString | 接入方应用appId,通过一点资讯开放平台申请 |
appKey | NSString | 接入方应用appKey,通过一点资讯开放平台申请 |
备注:开放平台SDK一直在更新迭代,为了稳定性及新特性,请开发者依赖最新版本,查看各个版本更新信息请点击版本更新记录
SDK目前支持开发者采取多频道列表的形式接入,开发者可在开放平台配置频道列表及顺序。开发者可通过YDNewsListSlideConfiguration类在信息流页面初始化时配置信息流页面样式。开发者也可以通过获取多频道列表页面view,实现自定义页面开发,接入示例可参照demo中DemoTabBarController和CustomNewsListSlideViewController的实现
YDNewsListSlideConfiguration *slideViewControllerConfig = [[YDNewsListSlideConfiguration alloc] init];
slideViewControllerConfig.contentInset = UIEdgeInsetsMake(0, 0, [LayoutHandler tabBarHeight], 0);
UIViewController *newsListSlideVC= [YDNewsFeedSDK YDNewsListSlideViewControllerWithConfiguration:slideViewControllerConfig];
调用方法:
+ (UIViewController<YDNewsFeedViewControllerProtocol> * __nonnull)YDNewsListSlideViewControllerWithConfiguration:(YDNewsListSlideConfiguration *)configuration;
参数说明:
参数 | 类型 | 描述 |
---|---|---|
configuration | YDNewsListSlideConfiguration | 信息流页面配置,详细参考4.1.2 |
返回说明:
类型 | 描述 |
---|---|
UIViewController | 实现YDNewsFeedViewControllerProtocol的信息流页面 |
开发者可通过YDNewsListSlideConfiguration进行信息流页面配置,仅在初始化时生成有效
属性名 | 类型 | 说明 |
---|---|---|
delegate | id \<YDViewControllerDelegate> | SDK对外回调delegate |
topLayoutHeight | CGFloat | 页面顶部高度,默认为status bar height。开发者有定制需求时,可获取viewController的view,设置topLayoutHeight,进行自定义开发。 |
contentInset | UIEdgeInsets | 当页面scrollView因为status bar, search bar, navigation bar, toolbar, tab bar 展示不正常时,此处开放权限相应调整 |
SDK目前支持开发者采取单频道列表的形式接入,开发者需要传入配置的频道名称。开发者可通过YDNewsListConfiguration类在信息流页面初始化时配置信息流页面样式。开发者也可以通过获取单频道列表页面view,实现自定义页面开发,接入示例可参照demo中DemoTabBarController和CustomNewsListViewController的实现。CustomNewsListViewController类中还包含push方式打开单频道列表场景代码示例。
YDNewsListConfiguration *listViewControllerConfig = [[YDNewsListConfiguration alloc] init];
listViewControllerConfig.contentInset = UIEdgeInsetsMake(0, 0, [LayoutHandler tabBarHeight], 0);
UIViewController *newsListVC= [YDNewsFeedSDK YDNewsListViewControllerWithChannelName:@"推荐" configuration:listViewControllerConfig];
调用方法:
+ (UIViewController<YDNewsFeedViewControllerProtocol> * __nonnull)YDNewsListViewControllerWithChannelName:(NSString * __nonnull)channelName configuration:(YDViewControllerConfiguration *)configuration;
参数说明:
参数 | 类型 | 描述 |
---|---|---|
channelName | NSString | 频道名,默认为“推荐”频道 |
configuration | YDNewsListConfiguration | 信息流页面配置,详细参考4.2.2 |
返回说明:
类型 | 描述 |
---|---|
UIViewController | 实现YDNewsFeedViewControllerProtocol的信息流页面 |
开发者可通过YDViewControllerConfiguration进行信息流页面配置,仅在初始化时生成有效
属性名 | 类型 | 说明 |
---|---|---|
delegate | id \<YDViewControllerDelegate> | SDK对外回调delegate |
hideNavgationBar | BOOL | 页面默认隐藏navigationController的导航栏,展示一点自定义导航栏 |
hideBackBtn | BOOL | 是否隐藏返回按钮,导航栏不隐藏时有效,默认不隐藏,当页面作为rootViewController时,强制隐藏返回按钮 |
navigationBarTitle | NSString | 导航栏标题,导航栏不隐藏时展示,默认展示频道名,只影响当前配置页面 |
contentInset | UIEdgeInsets | 当页面scrollView因为status bar, search bar, navigation bar, toolbar, tab bar 展示不正常时,此处开放权限相应调整 |
SDK信息流频道列表页面实现了YDNewsFeedViewControllerProtocol协议。提供对外暴露接口或方法的方式,辅助开发者实现一些功能.
开发者接入多频道列表或单频道列表过程中,可能需要通过点击底部Tab或者其他的方式进行信息流刷新操作,目前SDK对外暴露刷新方法来帮助开发者实现刷新操作。 调用方法:
- (void)userRefreshData:(BOOL)animation;
参数说明:
参数 | 类型 | 描述 |
---|---|---|
animation | BOOL | 是否触发下拉刷新动画 |
开发者可调用此方法将列表滚动到顶部 调用方法:
- (void)newsFeedScollsToTop;
开发者可调用此方法当前展示频道名 调用方法:
- (NSString *)currentChannelPageName;
返回说明:
类型 | 描述 |
---|---|
NSString | 当前展示频道名,可能为空 |
开发者自定义pushViewController接口,开发者未实现此delegate时,默认调取YDViewController的navigationController pushViewController: animated方法 调用方法
- (void)yd_pushViewController:(UIViewController *)viewController animated:(BOOL)animated;
参数 | 类型 | 描述 |
---|---|---|
animation | BOOL | 是否触发动画 |
开发者自定义popViewController接口,开发者未实现此delegate时,默认调取YDViewController的navigationController popViewControllerAnimated:方法 调用方法
- (void)yd_popViewControllerAnimated:(BOOL)animated;
参数说明:
参数 | 类型 | 描述 |
---|---|---|
animation | BOOL | 是否触发动画 |
在接入多频道列表时,接入方可能需要切换频道时的频道名信息,以便数据统计使用,SDK提供了接口调用来支持接入方完成此操作。 开发者需要实现YDNewsListSlideDelegate
调用方法
- (void)onPageSelected:(NSString *)channelPageName;
参数说明:
参数 | 类型 | 描述 |
---|---|---|
channelPageName | NSString | 展示的频道名 |
类型 | 描述 |
---|---|
SDK版本 | v1.0.0 |
设备型号 | iPhone 8 |
OS版本 | iOS 12.0 |
问题描述 | 描述问题出现的现象 |
操作描述 | 描述经过如何操作出现上述问题 |
额外附件 | 文本形式控制台log、crash报告、其他辅助信息(界面截屏或录像等) |