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

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 ];
}

ios的app,有新版本时必须先更新。的更多相关文章

  1. iOS APP下载安装时,如果出现此时无法下载安装APP的字样时,一些解决思路

    1.在iosAPP下载安装时,如果出现此时无法下载安装APP的字样时,可能是苹果系统进行了支持更新,并需要我们确认条约.至于如何判断是否是苹果系统进行了更改,只需要我们进入开发者账号,进入我的账户(A ...

  2. [App Store Connect帮助]一、 App Store Connect 使用入门(4)iOS 版 App Store Connect

    通过 iOS 版 App Store Connect,您可以在移动设备上查看销售数据.App 元数据和顾客评论.您还可以检查 App 状态.发布您 App 的新版本并回应“Resolution Cen ...

  3. ios h5 app avalon tap点击事件失效及点击延迟300ms问题解决方法

    1.ios h5 app avalon tap事件失效 使用MUI制作app界面,使用avalon.js渲染数据,发现在(Android上正常)ios上运行时容器div的avalon的ms-on-ta ...

  4. 【如何快速的开发一个完整的iOS直播app】(播放篇)

    原文转自:袁峥Seemygo    感谢分享.自我学习 前言 在看这篇之前,如果您还不了解直播原理,请查看上篇文章如何快速的开发一个完整的iOS直播app(原理篇) 开发一款直播app,集成ijkpl ...

  5. 【如何快速的开发一个完整的iOS直播app】(原理篇)

    原文转自:袁峥Seemygo    感谢分享.自我学习 目录 [如何快速的开发一个完整的iOS直播app](原理篇) [如何快速的开发一个完整的iOS直播app](播放篇) [如何快速的开发一个完整的 ...

  6. iOS:app直播---原理篇

    [如何快速的开发一个完整的iOS直播app](原理篇) 转载自简书@袁峥Seemygo:http://www.jianshu.com/p/7b2f1df74420   一.个人见解(直播难与易) 直播 ...

  7. iOS设置app应用程序文件共享

    1.iOSapp应用程序文件共享 当我们用itnues连接到设备时,在应用程序栏目下面,文件共享下,点击 对应的程序,即可以在程序右边栏目里面看到应用程序共享的数据, 此时,我们可以通过右下角的 添加 ...

  8. 如何快速的开发一个完整的iOS直播app(原理篇)

    目录 [如何快速的开发一个完整的iOS直播app](原理篇) [如何快速的开发一个完整的iOS直播app](播放篇) [如何快速的开发一个完整的iOS直播app](采集篇) 前言 大半年没写博客了,但 ...

  9. iOS 的 APP 在系统中如何适配不同的屏幕的尺寸

    iOS 的 APP 在系统中如何适配不同的屏幕的尺寸 标签: 2007年,初代iPhone发布,屏幕的宽高是 320 x 480 像素.下文也是按照宽度,高度的顺序排列.这个分辨率一直到iPhone ...

随机推荐

  1. python学习笔记07:自定义类型

    class person: def __init__(self,name,age,weight): self.name = name self.age = age self.weight = weig ...

  2. Python 零碎信息-基础 02

    1. range xrange 的差别 1.1 range 返回列表对象. 1.2 xrange 返回xrange对象  不需要返回列表里面的值, 节省内存. >>> range(1 ...

  3. C#创建Window服务图解,安装、配置、以及C#操作Windows服务

    一.首先打开VS2013,创建Windows服务项目 二.创建完成后对"Service1.cs"重命名位"ServiceDemo":然后切换到代码视图,写个服务 ...

  4. Spring IOC原理简析

    所谓IoC, 就是一个用XML来定义生成对象的模式. 1.现有三个类,Human是接口,Chinese是一个实现类,American是另一个实现类. 2.获取以上对象采用工厂模式的用法如下: 创建一个 ...

  5. 抽象类 C#

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  6. 刚装的vs无法运行正确的程序

  7. Hibernate学习实现查询

  8. 配置apt-get告诉下载源

    本文转自:http://blog.csdn.net/hyl1718/article/details/7915296 方法: 1.修改源地址: cp /etc/apt/sources.list /etc ...

  9. WPF实例,以getFiles()获取文件夹,treeview的应用

    读取电脑硬盘根目录添加到TreeView控件 foreach (DriveInfo item in System.IO.DriveInfo.GetDrives()) { if(item.ToStrin ...

  10. MATLAB中imfilter函数

    功能:对任意类型数组或多维图像进行滤波. 用法:B = imfilter(A,H) B = imfilter(A,H,option1,option2,...) 或写作g = imfilter(f, w ...