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

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. UCP协议

    UDP只在ip数据报的服务上增加了一点功能,就是复用和分用还有差错检验的功能 (1)UDP是面向无连接:发送之前不需要建立连接,减少了时间延续 (2)UDP只是尽最大努力交付,不能保证无措 (3)UD ...

  2. 3DMAX贴图无法显示

    问题描述:我在点击"将材质指定给选定对象"按钮之后,模型只是变灰了,没有显示出我贴的图. 原因是:没有显示贴图. 我的解决方案:点击材质编辑器里面的"视口中显示敏感处理材 ...

  3. lol人物模型提取(七)

      9月13号我就把上了贴图的模型文件发了过去,到9月18号他们那的颜色就上好了,一个叫"3d打印旗舰店"的人加了我微信并拍了几张照片发了给我,效果图如下:   第一眼看上去我还是 ...

  4. js移动端滑块验证解锁组件

    本文修改自PC端的js滑块验证组件,PC端使用的是onmousedown,onmouseup,nomousemove.原文找不到了,也是博客园文章,在此感谢广大网友的生产力吧. 说下对插件和组件的理解 ...

  5. 【.NET】- async await 异步编程

    为什么需要异步,异步对可能起阻止作用的活动(例如,应用程序访问 Web 时)至关重要. 对 Web 资源的访问有时很慢或会延迟. 如果此类活动在同步过程中受阻,则整个应用程序必须等待. 在异步过程中, ...

  6. Spring MVC 之@Controller@RequestMapping详解

    一:配置web.xml 1)问题:spring项目中有多个配置文件mvc.xml   dao.xml 2)解决:在web.xml中 <init-param> <param-name& ...

  7. [计算机网络] C++模拟telnet登陆SMTP服务发送邮件过程

    在百度文库中的<使用telnet协议收发邮件>,我们可以很清楚地看到如何通过telnet来进行发送邮件,下面是一些需要用到的命令,通过以下命令可以很容易实现邮件发送功能.为了更好地理解其中 ...

  8. Redis 基础:Redis 简介及安装

    Remote Dictionary Server(Redis)是一个由Salvatore Sanfilippo写的key-value存储系统.Redis是一个开源的使用ANSI C语言编写.遵守BSD ...

  9. P2420 让我们异或吧

    题目描述 异或是一种神奇的运算,大部分人把它总结成不进位加法. 在生活中…xor运算也很常见.比如,对于一个问题的回答,是为1,否为0.那么: (A是否是男生 )xor( B是否是男生)=A和B是否能 ...

  10. Andorid API Package ---> android.accessibilityservice

    包名: android.accessibilityservice                     Added in API level 4 URL:http://developer.andro ...