在进入新版本 的时候,进行推送引导

Posted 徒步天涯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在进入新版本 的时候,进行推送引导相关的知识,希望对你有一定的参考价值。

xx效果

 

具体代码如下
首先新建XMGPushGuideView类
 
XMGPushGuideView.h 文件
 
#import <UIKit/UIKit.h>

@interface XMGPushGuideView : UIView
/** 加载xib */
+(instancetype)guideView;
/** 判断当前的版本号,确定是加载推荐引导页 */
+(void)show;
@end
 
 
 
XMGPushGuideView.m 文件
 
#import "XMGPushGuideView.h"

@implementation XMGPushGuideView

+(instancetype)guideView{

    return [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass(self) owner:nil options:nil] lastObject];
}
- (IBAction)close {
    [self removeFromSuperview];
}

+(void)show{
   
    NSString *key=@"CFBundleShortVersionString";
   
    // 获得当前软件的版本号
    NSString *currentVersion = [NSBundle mainBundle].infoDictionary[key];
   
    //    获得沙盒中的存储的版本号
    NSString *sanboxVersion=[[NSUserDefaults standardUserDefaults] stringForKey:key];
   
    if (![currentVersion isEqualToString:sanboxVersion]) {
       
//        获得当前的window
        UIWindow *window=[UIApplication sharedApplication].keyWindow;

       
        XMGPushGuideView *guideView=[XMGPushGuideView guideView];
        guideView.frame=window.bounds;
        [window addSubview:guideView];
        //        存储版本号
        [[NSUserDefaults standardUserDefaults] setObject:currentVersion forKey:key];
        //       马上把版本号存储到沙盒中
        [[NSUserDefaults standardUserDefaults] synchronize];
    }
   
}
@end
 
 
而在AppDelegate.m文件
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
   
//    创建窗口
    self.window=[[UIWindow alloc]init];
    self.window.frame=[UIScreen mainScreen].bounds;
   
//    设置窗口的跟控制器
     self.window.rootViewController=[[XMGTabBarController alloc]init];

   
//    显示窗口
    [self.window makeKeyAndVisible];
   


//    显示推送引导
    [XMGPushGuideView show];
   
   
    return YES;
}
 
 
 
 
 

以上是关于在进入新版本 的时候,进行推送引导的主要内容,如果未能解决你的问题,请参考以下文章

将新版本上传到 iTunes 后,我收到推送通知权利问题

android应用程序第一次启动时显示引导界面

iPhone:如何推送与以前支持的 OSv3.2 不兼容的新版本

每当在 Laravel AWS 管道中推送新版本时,我的环境都会被删除

Kafka实践升级和新版本(0.10)特性预研

iTunes Connect - beta 测试 - 在外部用户接受初始邀请之前推送新版本?