1

I'm trying to implement Integration the SponsorPay Offerwall to my iOS application, but I can't understand how determine when user finished watching video and how many virtual coins he gained. In documentation I did not found solution :(

4

1 回答 1

1

当用户完成观看视频时,您在初始化实例时注册的委托将调用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类。下面是一些示例代码的使用指南(在本指南中,该类被描述为 SPVirtualCurrencyServerConnect ion,但过程是相同的)。

当硬币确实到达时,您的用户将在屏幕上看到一个简短的通知,其中包含他们所赚取的金额,除非您禁用它,将您的SPBrandEngageClient实例的shouldShowPayoffNotificationOnVirtualCoinsReceived属性设置为NO.

于 2013-01-03T13:34:51.513 回答