




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一一 iosios 软件更新软件更新 提示提示 1 服务器接口 通常的做法是在自己的服务器上记录最新版本号 从 iOS 客户端请求 与本地版本号比较 不同则提示更新 这种做法 简单 缺点是需要单独的服务器支持 2 Appstore 的接口 不需要另外的服务器支持 方法最优 NSString version NSURL url NSURL URLWithString versionRequest ASIFormDataRequest requestWithURL url versionRequest setRequestMethod GET versionRequest setDelegate self versionRequest setTimeOutSeconds 150 versionRequest addRequestHeader Content Type value application json versionRequest startSynchronous Response string of our REST call NSString jsonResponseString versionRequest responseString NSDictionary loginAuthenticationResponse jsonResponseString objectFromJSONString NSArray configData loginAuthenticationResponse valueForKey results for id config in configData version config valueForKey version Check your version with the version in app store if version isEqualToString itsUserDefaults objectForKey version ProAlertView createUserResponseAlert ProAlertView alloc initWithTitle New Version message A new version of app is available to download delegate self cancelButtonTitle Cancel otherButtonTitles Download nil createUserResponseAlert show createUserResponseAlert release void alertView UIAlertView actionSheet clickedButtonAtIndex NSInteger buttonIndex the user clicked one of the OK Cancel buttons if buttonIndex 1 NSString iTunesLink itms apps UIApplication sharedApplication openURL NSURL URLWithString iTunesLink 二二 androidandroid 版本升级提示版本升级提示 步骤 1 检测当前版本的信息 AndroidManifest xml manifest android versionName 2 从服务器获取版本号 版本号存在于 xml 文件中 并与当前检测到的版本进行匹配 如果不匹配 提示用户进行升级 如果 匹配则进入程序主界面 3 当提示用户进行版本升级时 如果用户点击了确定 系统将自动从服务器上下载并进行自动升级 如果点击取消将进入程序 主界面 效果图 1 1 获取当前程序的版本号获取当前程序的版本号 获取当前程序的版本号 private String getVersionName throws Exception 获取 packagemanager 的实例 PackageManager packageManager getPackageManager getPackageName 是你当前类的包名 0 代表是获取版本信息 PackageInfo packInfo packageManager getPackageInfo getPackageName 0 return packInfo versionName 2 获取服务器端的版本号 用 pull 解析器解析服务器返回的 xml 文件 xml 封装了版本号 public static UpdataInfo getUpdataInfo InputStream is throws Exception XmlPullParser parser Xml newPullParser parser setInput is utf 8 设置解析的数据源 int type parser getEventType UpdataInfo info new UpdataInfo 实体 while type XmlPullParser END DOCUMENT switch type case XmlPullParser START TAG if version equals parser getName info setVersion parser nextText 获取版本号 else if url equals parser getName info setUrl parser nextText 获取要升级的 APK 文件 else if description equals parser getName info setDescription parser nextText 获取该文件的信息 break type parser next return info 3 从服务器下载 apk public static File getFileFromServer String path ProgressDialog pd throws Exception 如果相等的话表示当前的 sdcard 挂载在手机上并且是可用的 if Environment getExternalStorageState equals Environment MEDIA MOUNTED URL url new URL path HttpURLConnection conn HttpURLConnection url openConnection conn setConnectTimeout 5000 获取到文件的大小 pd setMax conn getContentLength InputStream is conn getInputStream File file new File Environment getExternalStorageDirectory updata apk FileOutputStream fos new FileOutputStream file BufferedInputStream bis new BufferedInputStream is byte buffer new byte 1024 int len int total 0 while len bis read buffer 1 fos write buffer 0 len total len 获取当前下载量 pd setProgress total fos close bis close is close return file else return null 4 匹配 下载 自动安装 从服务器获取 xml 解析并进行比对版本号 public class CheckVersionTask implements Runnable public void run try 从资源文件获取服务器 地址 String path getResources getString R string serverurl 包装成 url 的对象 URL url new URL path HttpURLConnection conn HttpURLConnection url openConnection conn setConnectTimeout 5000 InputStream is conn getInputStream info UpdataInfoParser getUpdataInfo is if info getVersion equals versionname Log i TAG 版本号相同无需升级 LoginMain else Log i TAG 版本号不同 提示用户升级 Message msg new Message msg what UPDATA CLIENT handler sendMessage msg catch Exception e 待处理 Message msg new Message msg what GET UNDATAINFO ERROR handler sendMessage msg e printStackTrace Handler handler new Handler Override public void handleMessage Message msg TODO Auto generated method stub super handleMessage msg switch msg what case UPDATA CLIENT 对话框通知用户升级程序 showUpdataDialog break case GET UNDATAINFO ERROR 服务器超时 Toast makeText getApplicationContext 获取服务器更新信息失败 1 show LoginMain break case DOWN ERROR 下载 apk 失败 Toast makeText getApplicationContext 下载新版本失败 1 show LoginMain break 弹出对话框通知用户更新程序 弹出对话框的步骤 1 创建 alertDialog 的 builder 2 要给 builder 设置属性 对话框的内容 样式 按钮 3 通过 builder 创建一个对话框 4 对话框 show 出来 protected void showUpdataDialog AlertDialog Builder builer new Builder this builer setTitle 版本升级 builer setMessage info getDescription 当点确定按钮时从服务器上下载 新的 apk 然后安装 builer setPositiveButton 确定 new OnClickListener public void onClick DialogInterface dialog int which Log i TAG 下载 apk 更新 downLoadApk 当点取消按钮时进行登录 builer setNegativeButton 取消 new OnClickListener public void onClick DialogInterface dialog int which TODO Auto generated method stub LoginMain AlertDialog dialog builer create dialog show 从服务器中下载 APK protected void downLoadApk final ProgressDialog pd 进度条对话框 pd new ProgressDialog this pd setProgressStyle ProgressDialog STYLE HORIZONTAL pd setMessage 正在下载更新 pd show new Thread Override public void run try File file DownLoadManager getFileFromServer info getUrl pd sleep 3000 installApk file pd dismiss 结束掉进度条对话框 catch Exception e Message msg new Message msg what DOWN ERROR handler sendMessage msg e printStackTrace start 安装 apk protected void installApk File file Intent intent new Intent 执行动作 intent setAction Intent ACTION VIEW 执行的数据类型 intent setDataAndType Uri fromFile file application vnd android package archive startActivity in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年初中中考试题及答案
- 2025年学历类自考医学心理学-中国古代文学作品选(一)参考题库含答案解析(5套试卷)
- 2025年学历类自考中小学教育管理-学前教育史参考题库含答案解析(5套试卷)
- 2025年学历类自考中外教育管理史-工商行政管理学概论参考题库含答案解析(5套试卷)
- 2025年学历类自考中外教育简史-政府经济管理概论参考题库含答案解析(5套试卷)
- CN120128423B 一种用于联网视频的安全监测方法、系统、设备及介质 (深圳市鸿怡科技有限公司)
- 舞台搭建租赁合同范本
- 小厂吊车出售合同范本
- 民工租住楼房合同范本
- 第8课 经济体制改革 说课稿-2023-2024学年浙江省部编版历史与社会八年级下册
- 陆上石油天然气长输管道建设项目初步设计安全专篇
- 广西建设工程质量安全监督总站建设工程检测见证取样员手册
- 工作人员轮岗交流动员会上的讲话
- 《三字经》PPT课件(完整版)
- 钣金件检验的基本要求
- 公路工程施工安全技术规范-JTG-F90-2015
- 高职创新无人机实训室建设方案
- 现在完成时——英语公开课课件
- 管片嵌缝及手孔封堵施工方案完整
- 4三级心理危机干预体系流程图
- 1-5的认识和加减法《整理与复习》
评论
0/150
提交评论