我正在尝试将Integration 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(在本指南中,该类被描述为SPVirtualCurrencyServerConnect 和,但过程相同)。当硬币确实到达时,您的用户将在屏幕上看到一个简短的通知,告知他们所赚取的金额,除非您禁用它,将
SPBrandEngageClient
实例的shouldShowPayoffNotificationOnVirtualCoinsReceived
属性设置为NO
。关于ios - 在集成SponsorPay Offerwall方面需要帮助,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14137984/