【发布时间】:2015-03-11 17:18:58
【问题描述】:
我正在尝试将 SponsorPay Offerwall 集成到我的 iOS 应用程序中,但我不明白如何确定用户何时完成观看视频以及他获得了多少虚拟硬币。在文档中我没有找到解决方案:(
【问题讨论】:
我正在尝试将 SponsorPay Offerwall 集成到我的 iOS 应用程序中,但我不明白如何确定用户何时完成观看视频以及他获得了多少虚拟硬币。在文档中我没有找到解决方案:(
【问题讨论】:
当用户观看完视频后,您在初始化SPBrandEngageClient 实例时注册的委托将调用其brandEngageClient:didChangeStatus: 方法。
当用户观看完视频后,您将要查找的是此方法接收到的状态是否为CLOSE_FINISHED。
如果您改为收到CLOSE_ABORTED,则表示您的用户在完全观看视频之前已经关闭了互动。
所有状态都在SPBrandEngageClientStatus 枚举中定义和描述,您可以在SPBrandEngageClient.h 文件中找到该枚举。 Integrating_mBE_SDK.md 文档文件中也对此进行了描述,该文件位于“请求和显示约定”部分末尾的表格中。
您的委托必须符合在同一头文件中定义的SPBrandEngageClientDelegate 协议。
下面是SPBrandEngageClient 实例的初始化示例:
_brandEngageClient =
[[SPBrandEngageClient alloc] initWithAppId:@"YOUR_APP_ID"
userId:@"CURRENT_USER_ID"
delegate:self]; // <-- this is your delegate
这是您的 brandEngageClient:didChangeStatus: 委托方法的示例:
- (void)brandEngageClient:(SPBrandEngageClient *)brandEngageClient
didChangeStatus:(SPBrandEngageClientStatus)newStatus
{
switch (newStatus) {
case STARTED:
// Your user just started watching the engagement
break;
case CLOSE_FINISHED:
// This is it! Your user finished watching the video
break;
case CLOSE_ABORTED:
// Engagement was cancelled
break;
case ERROR:
// Something prevented the engagement from working correctly
break;
}
}
如果您的brandEngageClient:didChangeStatus: 委托方法收到CLOSE_FINISHED 状态通知,您可以放心地假设您的用户将收到付款。无法立即确定此支出的大小,因为服务器需要一些时间来处理它。当前的 SDK 实现要求您定期轮询服务器,直到您获得的金额大于 0。为此,您可以使用提供的 SPVirtualCurrencyServerConnector 类。 Here's a guide to its usage with some example code(在本指南中,该类被描述为 SPVirtualCurrencyServerConnection,但过程相同)。
当硬币到达时,您的用户会在屏幕上看到一个简短的通知,显示他们所赚取的金额,除非您将SPBrandEngageClient 实例的shouldShowPayoffNotificationOnVirtualCoinsReceived 属性设置为NO 禁用它。
【讨论】: