zoukankan      html  css  js  c++  java
  • ios的app,有新版本时必须先更新。

    现在没时间整理,先把代码贴出来,以后再做详细的思路整理。

    1 在AppController.mm的didFinishLaunchingWithOptions方法里面获取本地应用版本信息,保存起来。

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

    2 在加载页面,使用http向服务器版本信息,如果返回的版本信息和在第一步中得到的不一致,进入混编文件。

      这只是一些参数。

     //转到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 我把具体的类都贴上来,包括

    ICheckVersionHelper.h  ICheckVersionHelper.app

    CheckVersionHelperWin32.h CheckVersionHelperWin32.app 

    CheckVersionHelperIOS.mm CheckVersionHelperIOS.h

    ICheckVersionHelper.h

    #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.app

    #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 ];
    }
  • 相关阅读:
    Promise小结
    Jquery 一次处理多个ajax请求的代码
    for of 与 for in的区别
    三级联动效果
    最好的拖拽js
    Unicode转义(uXXXX)的编码和解码
    禁止遮罩层以下屏幕滑动
    director.js:客户端的路由---简明中文教程
    通过CSS的border绘制三角形
    概率图模型(PGM)学习笔记(四)-贝叶斯网络-伯努利贝叶斯-多项式贝叶斯
  • 原文地址:https://www.cnblogs.com/lan0725/p/3382179.html
Copyright © 2011-2022 走看看