ios的app,有新版本時必須先更新。

如今沒時間整理,先把代碼貼出來,之後再作詳細的思路整理。服務器

1 在AppController.mm的didFinishLaunchingWithOptions方法裏面獲取本地應用版本信息,保存起來。app

 // about App version
    NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];  
    NSString *versionStr = [infoDictionary objectForKey:@"CFBundleShortVersionString"];
    SettingsManager::getInstancePtr()->getShortVersion() = [ versionStr UTF8String ];

2 在加載頁面,使用http向服務器版本信息,若是返回的版本信息和在第一步中獲得的不一致,進入混編文件。ide

  這只是一些參數。atom

 //轉到appstore 裏面
        std::string t = MessageManage::getInstancePtr()->getStrMessage(String_Alter_Version_Title);
        std::string c = MessageManage::getInstancePtr()->getStrMessage(String_Alter_Version_Content);
        std::string b = MessageManage::getInstancePtr()->getStrMessage(String_Alter_Version_Btn);
        ICheckVersionHelper::getInstancePtr()->alertView(t,c,b);

3 我把具體的類都貼上來,包括spa

ICheckVersionHelper.h  ICheckVersionHelper.appcode

CheckVersionHelperWin32.h CheckVersionHelperWin32.app blog

CheckVersionHelperIOS.mm CheckVersionHelperIOS.hget

ICheckVersionHelper.hstring

#ifndef __ICheckVersionHelper_H__
#define __ICheckVersionHelper_H__

#include "cocos2d.h"
class ICheckVersionHelper
{
public:
    ICheckVersionHelper();

    virtual ~ICheckVersionHelper();

    static ICheckVersionHelper * getInstancePtr();

    virtual void alertView(std::string titlestr,std::string contentstr,std::string btnstr) {}

};


#endif// #ifndef __ICheckVersionHelper_H__

ICheckVersionHelper.appit

#include "PrecompiledHeader.h"
#include "ICheckVersionHelper.h"


ICheckVersionHelper::ICheckVersionHelper()
{
}


ICheckVersionHelper::~ICheckVersionHelper()
{
}

CheckVersionHelperWin32.h

#ifndef __CheckVersionHelperWin32_H__
#define __CheckVersionHelperWin32_H__


#include "ICheckVersionHelper.h"


class CheckVersionHelperWin32 : public ICheckVersionHelper
{
public:
    CheckVersionHelperWin32();

    ~CheckVersionHelperWin32();

    static CheckVersionHelperWin32 * getInstancePtr();

private:
    static CheckVersionHelperWin32    m_Singleton;

};


#endif// #ifndef __CheckVersionHelperWin32_H__

CheckVersionHelperWin32.app 

#include "PrecompiledHeader.h"
#include "CheckVersionHelperWin32.h"


CheckVersionHelperWin32 CheckVersionHelperWin32::m_Singleton;


ICheckVersionHelper * ICheckVersionHelper::getInstancePtr()
{
    return ( CheckVersionHelperWin32::getInstancePtr() );
}


CheckVersionHelperWin32::CheckVersionHelperWin32()
{
}


CheckVersionHelperWin32::~CheckVersionHelperWin32()
{
}


CheckVersionHelperWin32 * CheckVersionHelperWin32::getInstancePtr()
{
    return ( &m_Singleton );
}

CheckVersionHelperIOS.h

#ifndef __CheckVersionHelperIOS_H__
#define __CheckVersionHelperIOS_H__


#include "ICheckVersionHelper.h"
#import <UIKit/UIKit.h>

@interface CheckVersionHelper : UIViewController<UIAlertViewDelegate> {
}
@property (nonatomic,retain) NSString *mytitle;
@property (nonatomic,retain) NSString *mycontent;
@property (nonatomic,retain) NSString *mybtn;
- (void) showMyView;
@end


class CheckVersionHelperIOS : public ICheckVersionHelper
{   
public:
    void alertView(std::string titlestr,std::string contentstr,std::string btnstr) override;
    
    static CheckVersionHelperIOS * getInstancePtr();
    
protected:
    CheckVersionHelperIOS() {}
    
    ~CheckVersionHelperIOS() {}
    
private:
    static CheckVersionHelperIOS m_Singleton;

};


#endif

CheckVersionHelperIOS.mm 裏面的apple id 我瞎寫的。

#include "CheckVersionHelperIOS.h"

@implementation CheckVersionHelper

- (id) init
{
    return self;
}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if (buttonIndex == [alertView cancelButtonIndex]) {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-apps://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=7100000"]];
    }
}
- (void)showMyView
{
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:nil
                                                   message:self.mycontent
                                                  delegate:self
                                         cancelButtonTitle:self.mybtn
                                         otherButtonTitles:nil,nil];
    [alert show];
    [alert release];
}
@end


ICheckVersionHelper * ICheckVersionHelper::getInstancePtr()
{
    return ( CheckVersionHelperIOS::getInstancePtr() );
}

CheckVersionHelperIOS CheckVersionHelperIOS::m_Singleton;

CheckVersionHelperIOS * CheckVersionHelperIOS::getInstancePtr()
{
    return ( &m_Singleton );
}
void CheckVersionHelperIOS::alertView(std::string titlestr,std::string contentstr,std::string btnstr)
{
    CheckVersionHelper * myhelper = [[CheckVersionHelper alloc] init];
    [myhelper setMytitle:[NSString stringWithUTF8String:titlestr.c_str()]];
    [myhelper setMycontent:[NSString stringWithUTF8String:contentstr.c_str()]];
    [myhelper setMybtn:[NSString stringWithUTF8String:btnstr.c_str()]];
    [myhelper showMyView ];
}
相關文章
相關標籤/搜索