Nexage 集成 SourceKit for MRAID
Nexage 集成 SourceKit for MRAID 是一款易于使用的库,它实现了 IAB MRAID 2.0 规范 (http://www.iab.net/guidelines/508676/mobile_guidance/mraid)。它用 Objective-C 编写,可以在 iPhone 和 iPad 应用程序中使用。
特性
- MRAID 2 实现细节
- 处理完整的/片段的 HTML
- 4 级日志记录
- 只需几行代码即可集成
- ARC 支持
需求
- iOS 4.3+
- Xcode: 5.0+
- SourceKitCommon Github 项目 (https://github.com/nexage/sourcekit-common-ios)
开始使用
步骤 1: 包括 MRAID 和 "SourceKitCommon" Xcode 项目。请确保将 SourceKitCommon Github 仓库克隆到与 MRAID 相同的文件夹级别。
步骤 2: 将这些头文件导入到您的项目中
#import "SKLogger.h"
#import "SKMRAIDView.h"
#import "SKMRAIDInterstitial.h"
#import "SKMRAIDServiceDelegate.h"
在目标下编辑构建阶段
Target Dependencies - Add MRAID & SourceKitCommon projects
Link Binary with Libraries - Add libMRAID.a & libSourceKitCommon.a
步骤 3: 创建一个 SKMRAIDView 并将其添加到您的容器视图中,如本示例所示
对于横幅广告
SKMRAIDView *bannerView = [[SKMRAIDView alloc] initWithFrame:CGRectMake(0, 0, 320, 50)
withHtmlData:htmlData
withBaseURL:bundleUrl
supportedFeatures:@[MRAIDSupportsSMS, MRAIDSupportsTel]
delegate:self
serviceDelegate:self
rootViewController:self];
[self.view addSubview:bannerView];
注意:您必须提供一个字符串形式的创意内容以及 baseURL。创意可以是 HTML 片段或完整 HTML。
对于插页式广告
self.interstitial = [[SKMRAIDInterstitial alloc]
initWithSupportedFeatures:@[MRAIDSupportsCalendar]
withHtmlData:htmlData
withBaseURL:bundleUrl
delegate:self
serviceDelegate:self
rootViewController:self];
等待 SKMRAIDInterstitialDelegate 的 'mraidInterstitialAdReady:' 回调,当广告准备好在屏幕上显示时,执行以下操作
[mraidInterstitial show];
在播放广告之前,使用 [mraidInterstitial isAdReady] 检查广告的可用性。
步骤 4: (可选)查看日志
[SKLogger setLogLevel:SourceKitLogLevelDebug]; // select desired log level
步骤 5: (可选)如果您希望监听并处理 MRAID 计划、storePicture、inlineVideo 和打开浏览器事件,请实现 SKMRAIDServiceDelegate 协议。
这就完成了!
LICENSE
版权所有 (c) 2013, Nexage, Inc.
保留所有权利。
以下是基于BSD-3许可证提供的
允许以源代码和二进制代码形式重新分发和使用,无论是否修改,只要满足以下条件
-
源代码的重新分发必须保留上述版权声明、本清单以及以下免责声明。
-
二进制代码的重新分发必须在提供的文档和其他材料中复制上述版权声明、本清单以及以下免责声明。
-
未经事先书面许可,不得使用 Nexage 名称及其贡献者的名称推广或认可由此软件派生的产品。
本软件由版权所有者和贡献者提供“按原样”,任何明示或暗示的保证,包括但不仅限于适销性和针对特定目的的适用性保证均不予承担。在任何情况下,版权所有者或贡献者不对任何直接、间接、偶然、特殊、示范性或后果性的损害(包括但不限于替代货物或服务的采购;使用、数据或利润的损失;或业务中断)承担责任,即使已被告知此类损害的可能性。