在 iOS 页面上配置预置展位分为数据接入和 UI 接入两部分操作。数据接入回调获取的是展位数据;UI 接入获取的是根据展位数据生成的 UI 对象。
如果您是智能投放组件的新手用户,建议您直接通过该组件的控制台(服务端)动态配置广告展位的 iOS 页面。更多服务端的配置信息,查看 创建展位。
说明
预置接入的对象一般为 ViewController 的子类,该对象必须实现 PromotionCenterDelegate 方法。
UI 接入
添加协议实现。
ViewController对象实现投放的协议PromotionCenterDelegate。@interface DemoViewController () <CDPPromotionCenterDelegate> @end添加投放监听。
在
ViewController的viewDidLoad中(或之前)调用添加监听接口,当投放数据就绪时,会通过协议方法进行回调。NSArray *spaceCodes = @[@"code1", @"code2"]; [CDPPromotionCenter addObserver:self spaceCodesForView:spaceCodes spaceCodesForData:nil extInfo:nil immediately:YES];实现
PromotionCenterDelegate协议中回调spaceView对象的方法,将生成的view添加到页面上。- (void)promotionViewDidFinishLoading:(CDPSpaceView *)spaceView spaceCode:(NSString *)spaceCode { // 将获取的 spaceView 添加到屏幕上 // 如果传回的 spaceView 为 nil,表示请求删除广告,此时必须删掉广告内容,页面恢复到没有广告内容的状态。移除监听。
在页面退出时,移除监听。在
ViewController的dealloc方法中移除监听。- (void)dealloc { [CDPPromotionCenter removeObserver:self]; }
数据接入
添加协议实现。
ViewController对象实现投放的协议PromotionCenterDelegate。@interface DemoViewController () <CDPPromotionCenterDelegate> @end添加投放监听。
在
ViewController的viewDidLoad中(或之前)调用添加监听接口,当投放数据就绪时,会通过协议方法进行回调。NSArray *spaceCodes = @[@"code1", @"code2"]; [CDPPromotionCenter addObserver:self spaceCodesForView:nil spaceCodesForData:spaceCodes extInfo:nil immediately:YES];实现
PromotionCenterDelegate协议中回调spaceInfo对象的方法,根据返回的数据,进行自定义处理。- (void)promotionDataDidFinishLoading:(CDPSpaceInfo *)spaceInfo spaceCode:(NSString *)spaceCode { // 根据 spaceInfo 生成需要显示的广告view // 可以自定义来生成 view,也可以使用 SDK 提供的 CDPSpaceView 类 // 将广告 view 添加到屏幕上 }移除监听。
在退出页面时,移除监听。在
ViewController的dealloc方法中移除监听。- (void)dealloc { [CDPPromotionCenter removeObserver:self]; }
该文章对您有帮助吗?