首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >停止来自Heyzap SDK的所有广告,以便在应用程序购买中“删除广告”

停止来自Heyzap SDK的所有广告,以便在应用程序购买中“删除广告”
EN

Stack Overflow用户
提问于 2015-09-25 05:28:51
回答 1查看 450关注 0票数 0

我正在尝试停止所有的广告后,在应用程序购买iOS使用Heyzap SDK。

我试过了:

代码语言:javascript
复制
-(void) OnRemoveADS {
  ...

 [self buyFeatureRemoveADS];

 [HeyzapAds nil];
 [HeyzapAds removeFromSuperview];
  HZInterstitialAd = nil;
}

它们都会产生Xcode错误。

我知道我将不得不从不同的位置关闭它们,因为我的横幅广告是从间隙单独初始化的。

类似于此方法中的else语句:

代码语言:javascript
复制
-(id) init {
    if (self = [super init]) {

    g_bRemoveADS=[[NSUserDefaults standardUserDefaults] boolForKey: @"REMOVEADS"];

    if(!g_bRemoveADS)
    {

       [[[[UIApplication sharedApplication] keyWindow] rootViewController] view];

        HZBannerAdOptions *options = [[HZBannerAdOptions alloc] init];
        //options.presentingViewController = self;

        [HZBannerAd placeBannerInView:self.view
                             position:HZBannerPositionBottom
                              options:options
                              success:^(HZBannerAd *banner) {
                                  NSLog(@"Ad Shown!");

                              } failure:^(NSError *error) {
                                  NSLog(@"Error = %@",error);
                              }];
    }

    else {

        // Stop banner ads here

    }

在MKStoreManger中,有几种删除广告的方法:

代码语言:javascript
复制
- (void) buyFeatureRemoveADs {
   [self buyFeature:featureRemoveADSId];
}

静态字符串:

代码语言:javascript
复制
  static NSString *featureRemoveADSId = IAP_RemoveADS;
EN

回答 1

Stack Overflow用户

发布于 2015-09-25 05:55:53

我是Heyzap的iOS工程师。

当广告被禁用时,不显示间隙广告、视频广告或激励广告非常容易:只需在显示它们之前检查g_bRemoveADS BOOL值:

代码语言:javascript
复制
g_bRemoveADS = [[NSUserDefaults standardUserDefaults] boolForKey: @"REMOVEADS"];

// For HZInterstitialAd, HZVideoAd, and HZIncentivizedAd, just check the BOOL to see if an ad should be shown
if (!g_bRemoveADS) {
    [HZInterstitialAd show];
}

对于HZBannerAd,有三种情况需要考虑:

  1. 我们尚未获取横幅,在这种情况下,如果广告被禁用,请不要费心获取。
  2. 横幅仍在请求中,我们正在等待它的获取。销毁成功区块中的横幅。
  3. 横幅已经出现在屏幕上,在这种情况下,我们应该在禁用广告时将其删除。

下面是横幅的代码:

代码语言:javascript
复制
if (!g_bRemoveADS) { // case (1)
    [HZBannerAd placeBannerInView:self.view
                         position:HZBannerPositionBottom
                          options:options
                          success:^(HZBannerAd *banner) {
                              if (g_bRemoveADS) { // case (2)
                                  // Just discard the banner
                                  [banner removeFromSuperview];
                              } else {
                                  // Keep a reference to the current banner ad, so we can remove it from screen later if we want to disable ads.
                                  self.currentBannerAd = banner;
                              }
                              NSLog(@"Ad Shown!");

                          } failure:^(NSError *error) {
                              NSLog(@"Error = %@",error);
                          }];
}

我创建了一个单独的disableAds方法,该方法设置NSUserDefaults中的值并销毁当前横幅(如果有)。

代码语言:javascript
复制
- (void)disableAds {
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"REMOVEADS"];
    [currentBannerAd removeFromSuperview]; // case (3)
}

当前的HZBannerAd接口有点复杂。我们正在开发一个更简单的界面,它将为您处理所有这些复杂性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32771225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档