在应用内购买后重新加载SKScene或View以删除iAd

保罗

在应用内购买之后,我已经成功从Sprite Kit游戏中删除了iAd,但是问题是该应用需要重新启动才能停止展示。

这使我相信,需要在应用内购买完成后以某种方式刷新或重新加载视图或场景(我已经尝试了很多方法),以便iAd消失。

应用内购买是在一个名为PurchasedViewController的单独类中进行的,我以模态形式进行了介绍。

目前,我正尝试在购买回购给根View Controller之后发送通知。

这是我的代码:

ViewController.m

#import "ViewController.h"
#import "Intro.h"
#import "PurchasedViewController.h"
#import <iAd/iAd.h>
#import "InAppManager.h"

@implementation ViewController

- (void)viewDidLoad {

  [super viewDidLoad];

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(reload)
                                             name:@"reloadIntro"
                                           object:nil];

// Configure the view.
SKView * skView = (SKView *)self.view;


// Create and configure the scene.
SKScene *scene = [Intro sceneWithSize:skView.bounds.size];
scene.scaleMode = SKSceneScaleModeAspectFill;


 // Present the scene
 [skView presentScene:scene];
}

-(void)reload {
// Reload the View/Scene to remove iAds
 .....
}

- (void)viewDidAppear:(BOOL)animated {

   [super viewDidAppear:animated];

  //Display iAds
  if ( [[InAppManager sharedManager] isFeature1PurchasedAlready] == FALSE) {
    NSLog(@"iAds are showing");
    ADBannerView *adView = [[ADBannerView alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height - 480, 320, 50)];
    [self.view addSubview:adView];
  }

 //Remove iAds
 else if ( [[InAppManager sharedManager] isFeature1PurchasedAlready] == TRUE) {

    NSLog(@"iAds have been removed");
    ADBannerView *adView = [[ADBannerView alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height - 480, 320, 50)];
    adView.hidden = YES;
    [adView removeFromSuperview];
  }
}

PurchasedViewController.m

我不会在这里放很多In App Purchase代码,因为我知道它可以工作,并且我也已经成功删除了Chartboost的广告。

-(void) unlockProduct1 {

  if ( [[InAppManager sharedManager] isFeature1PurchasedAlready] == NO) {
     NSLog(@"Product 1 was not bought yet");
    [buyProduct1Button setBackgroundImage:[UIImage imageNamed:@"Remove_Ads"] forState:UIControlStateNormal];
 }

  else {
    NSLog(@"Product 1 WAS bought");
    [buyProduct1Button setBackgroundImage:[UIImage imageNamed:@"Purchased"] forState:UIControlStateNormal];

    // Sending Notification to ViewController.m
    NSLog(@"Did Send notification reloadIntro");
    [[NSNotificationCenter defaultCenter] postNotificationName:@"reloadIntro" object:nil];
  }
}

- (IBAction)dismissPurchasedVC:(UIButton *)sender {
    [self dismissModalViewControllerAnimated:YES];
 }
学习Cocos2D

这不会删除iAd视图:

 //Remove iAds
 else if ( [[InAppManager sharedManager] isFeature1PurchasedAlready] == TRUE) {

    NSLog(@"iAds have been removed");
    ADBannerView *adView = [[ADBannerView alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height - 480, 320, 50)];
    adView.hidden = YES;
    [adView removeFromSuperview];
  }

它的作用:创建一个新的iAd视图,将其设置为隐藏状态,并将其从其超级视图中删除(从未添加到该视图)。iAd视图的实际“活动”实例不受此影响。

您需要一个现有iAd视图的参考(ivar):

@implementation ViewController
{
    ADBannerView* _adView;
}

创建广告横幅视图时分配参考:

_adView = [[ADBannerView alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height - 480, 320, 50)];
[self.view addSubview:_adView];

然后使用引用删除广告横幅视图:

[_adView removeFromSuperview];
_adView = nil;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在通过modalView购买应用内后如何重新加载数据

来自分类Dev

从Apple AppStore删除应用程序后,仍可以恢复应用程序内购买吗?

来自分类Dev

swift:应用内购买价格加载

来自分类Dev

离线接受应用内购买+删除已取消的购买

来自分类Dev

Apple 应用内购买 - 从销售中删除项目后活动订阅会发生什么

来自分类Dev

从iOS应用中删除应用内购买选项

来自分类Dev

与应用删除相关的消耗性应用内购买

来自分类Dev

从iOS应用中删除应用内购买选项

来自分类Dev

应用内购买已购买

来自分类Dev

删除项目后,symfony重新加载页面

来自分类Dev

Android:购买后消费产品(应用内结算)

来自分类Dev

应用内购买完成后显示对话

来自分类Dev

Android:购买后消费产品(应用内结算)

来自分类Dev

如何进行应用内购买删除广告

来自分类Dev

用户进行应用内购买时删除广告

来自分类Dev

在应用内购买时删除RevMob广告横幅

来自分类Dev

iAd实施后应用崩溃

来自分类Dev

恢复应用内购买

来自分类Dev

应用内动态购买

来自分类Dev

应用内购买Swift

来自分类Dev

在应用程序内购买android购买商品后,屏幕未更新

来自分类Dev

页面重新加载后重新使用UCWA应用程序

来自分类Dev

应用拒绝-应用内购买

来自分类Dev

应用内购买-无需购买即可还原

来自分类Dev

在应用内购买-购买错误的产品

来自分类Dev

以后可以删除购买内容的iOS应用使用哪种类型的应用内购买,然后可以再次添加

来自分类Dev

在SKScene中购买应用程序无法正常工作吗?

来自分类Dev

iAd / google非页内广告弹出窗口后应用冻结

来自分类Dev

将iOS应用发布到App Store后无法进行应用内购买

Related 相关文章

热门标签

归档