# Centrixlink-iOS-SDK
平台支持
iOS7+ 版本
准备工作
Cocoapods管理
Centrixlink iOS SDK可以通过Cocoapods工具自动操作完成。使用Cocoapods工具安装Centrixlink iOS SDK,只需在工程Podfile文件中添加以下代码并运行pod install命令即可。
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '7.0'
target 'TargetName' do
pod 'Centrixlink-iOS', '~> 2.5.4'
end
手动操作
-
从官网下载Centrixlink_iOS_SDK文件。
-
解压缩Centrixlink框架(Centrixlink.embeddedframework/Cntrixlink.framework),并添加到XCode项目中。
-
添加Resources/CLBundle.bundle到Xcode项目中。
-
添加以下依赖库:
* UIKit.framework * AVFoundation.framework * Foundation.framework * CoreMedia.framework * CoreLocation.framework * CoreTelephony.framework * SystemConfiguration.framework * Storekit.framework * MediaPlayer.framework * CFNetwork.framework * AdSupport.framework * ImageIO.framework * libz.dylib * libsqlite3.dylib * libstdc++.dylib
-
添加编译参数
在Xcode中选择项目的Targets->Build Settings,配置Other Link Flags 增加 -ObjC -all_load
- 状态栏控制设置
打开项目的Info.plist,增加 "View controller-based status bar appearance" 选项,并设置为 "No".
集成说明
1. 添加头文件
- AppDelegate.h:
#import <Centrixlink/Centrixlink.h>
2. 激活SDK
- AppDelegate.m:
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//开启debug
[[CentrixlinkAD sharedInstance] setDebugEnable:YES];
//设置视频广告的展示方向(在调用startWithAppID:AppSecretKey:error:方法前调用该方法)
//orientation: 视频广告展示方向(UIInterfaceOrientationMaskPortrait / UIInterfaceOrientationMaskLandscape / UIInterfaceOrientationMaskAll = default)
[[CentrixlinkAD sharedInstance] setPlayAdOrientation:UIInterfaceOrientationMaskAll];
//激活SDK
NSError *error;
NSString * Default_App_ID = @"ECbUXI7E5l";
NSString * Default_App_Key = @"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq2c/yohc/9kWa0cfmMo1DTGM4rUmRyZ7WcKyhJZZNH8tiFY9i32FGMN8x4QT2hr2iiPfzizRkGfYoG+++9wAAWHhobu2cZ+dIcBTwayDFY4OJo6k592YFbyDa9mwuirgb0fRGtWY3WzvI5oaigZnv9EFjRVdr1omLk10azYNcwQIDAQAB";
/* 实际开发中请务必使用自己申请的AppID 和 AppSecretKey */
[[CentrixlinkAD sharedInstance] startWithAppID:Default_App_ID AppSecretKey:Default_App_Key error:&error];
if(error){
NSLog(@"start Error %@", error);
}else{
NSLog(@"start Success");
}
}
3. 添加代码到展示视频广告的ViewController中
3.1 添加代理
- (void)viewDidLoad{
//设置代理(广告代理)
[[CentrixlinkAD sharedInstance] setDelegate:self];
}
3.2 跟踪视频广告展示添加相关委托接口
/**
* 广告adId
*/
UIKIT_EXTERN NSString *const ADInfoKEYADID;
/**
* 视频广告播放状态,true为视频广告完整播放,false为视频广告非完整播放
*/
UIKIT_EXTERN NSString *const ADInfoKEYADPlayStatus;
/**
* 视频广告是否被点击,true为点击,false为未点击
*/
UIKIT_EXTERN NSString *const ADInfoKEYIsClick;
#pragma mark ----CentrixlinkDelegate
- (void)centrixLinkAdPlayability:(BOOL)isAdPlayable {
//返回是否有可播放广告
}
/**
* 视频广告即将展示
*
* @param ADInfo 视频广告信息
*/
- (void)centrixLinkVideoADWillShow:(NSDictionary *)ADInfo {
//广告资源ID
NSString *adid = [ADInfo objectForKey:ADInfoKEYADID];
NSLog(@"视频广告数据已经准备完毕,即将开始展示;请保存当前应用或游戏状态");
}
/**
* 视频广告完成展示
*
* @param ADInfo 视频广告信息
*/
- (void)centrixLinkVideoADDidShow:(NSDictionary *)ADInfo {
//广告资源ID
NSString *adid = [ADInfo objectForKey:ADInfoKEYADID];
NSLog(@"视频广告页面已经展示");
}
/**
* 视频广告展示已关闭
*
* @param ADInfo 视频广告信息,若播放广告错误则ADInfo包含error字段及错误信息
*/
- (void)centrixLinkVideoADClose:(NSDictionary *)ADInfo {
//广告资源ID
NSString *adid = [ADInfo objectForKey:ADInfoKEYADID];
//是否有点击事件
BOOL isClick = [[ADInfo objectForKey:ADInfoKEYIsClick] boolValue];
//是否完整播放
BOOL isplayFinished = [ADInfo objectForKey:ADInfoKEYADPlayStatus];
//详细信息
NSLog(@"ADInfo: %@",ADInfo);
}
/**
显示广告出错
@param error 通过不同的error code区分不同的错误类型
*/
- (void)centrixLinkVideoADShowFail:(NSError *)error {
NSLog(@"%@", error);
/* code
100 广告的播放间隔时间不满足条件
101 本地没有可播放广告
105 当前正在播放其它广告
106 处于静默状态
108 当前用户播放超限
*/
}
3.3 展示视频广告
//只展示预加载视频广告
- (void)showPreloadAD:(id )sender {
CentrixlinkAD *manager = [CentrixlinkAD sharedInstance];
NSError *error = nil;
//当前是否可以显示广告
if([manager isAdPlayable]) {
//options可以传入播放的参数:
/*
* CentrixlinkPlayAdOptionKeyUser: 用户ID
* CentrixlinkPlayAdOptionKeyIECAutoClose: endcard是否点击后自动关闭,如不自动关闭,则可以多次点击。(default:YES)
* CentrixlinkPlayAdOptionKeyExtra1: 其它扩展参数
* 其它参数可参考CentrixlinkConst.h定义。
*
*/
[manager playAD:self options:@{CentrixlinkPlayAdOptionKeyUser:@"test_userId", CentrixlinkPlayAdOptionKeyExtra1:@"Extra1",CentrixlinkPlayAdOptionKeyIECAutoClose:@(YES)} error:&error];
if (error) {
//处理错误
NSLog(@"%@", error);
}
}else{
NSLog(@"当前无有效的预加载视频广告");
}
}