友盟集成自动更新版本功能

以下是从友盟SDK文档中摘录出来的一些说明:

iOS自动更新SDK集成指南 :http://dev.umeng.com/auto-update/ios/quick-start

1. 集成友盟iOS统计分析SDK

友盟自动更新功能在统计分析SDK中实现,请点击下面链接,先集成统计分析SDK

统计分析iOS SDK集成指南

2. 使用按渠道自动更新检测

在网站上分渠道提交app的版本号,更新日志及openURL后,您只需添加一行代码来完成自动更新检查。

请将下面代码添加到[MobClick startWithAppkey:@”xxxxxxxxxxxxxxx”];之后

[MobClick checkUpdate];

如果想对UIAlertView的标题和按钮文字做多国语言支持,则需要对下面三个词组做翻译。

umUpdateTitle :标题

umUpdateCancel : 放弃按钮

umUpdateOK : 确定按钮

当然您可以更简单的自定义标题和按钮的文字

[MobClick checkUpdate:@”New version” cancelButtonTitle:@”Skip” otherButtonTitles:@”Goto Store”];

如果默认的行为不满足你的需求,您可以完全自定义自动更新检查行为。只需实现

- (void)appUpdate:(NSDictionary *)appInfo;

这个delegate方法。appInfo是服务器传回来的app相关信息。

Xcode4有两个版本号,一个是Version,另一个是Build,对应于Info.plist的字段名分别为CFBundleShortVersionString,CFBundleVersion。 友盟SDK为了兼容Xcode3的工程,默认取的是Build号,如果需要取Xcode4的Version,可以使用下面 的方法。

NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@”CFBundleShortVersionString”];

[MobClick setAppVersion:version];

文档很简单,但是很尴尬的是,他的这个说明文档是旧版本的,里面一些方法都没有或者过时的方法。

其中新的初始化方法:

[MobClick startWithAppkey:kUmengAppKey reportPolicy:BATCH channelId:kUmengAppstoreChannelId];

还有就是过时的回调:

- (void)appUpdate:(NSDictionary *)appInfo;

这个方法也已经过时,如今是

+ (void)checkUpdateWithDelegate:(id)delegate selector:(SEL)callBackSelectorWithDictionary;

好了,这里我贴以下我工程测试所实现的:

首先在 AppDelegate.m中

//kUmengAppstoreChannelId 是渠道名
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
[MobClick startWithAppkey:kUmengAppKey reportPolicy:BATCH channelId:kUmengAppstoreChannelId];
...
}

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    [MobClick checkUpdate:@"有新版本更新啦!" cancelButtonTitle:@"我爱怀旧" otherButtonTitles:@"我爱潮流"];
}

版本提醒中用的是友盟默认的弹出样式。

如果需要检测更新,

[MobClick checkUpdateWithDelegate:self selector:@selector(callBackSelectorWithDictionary:)];

- (void)callBackSelectorWithDictionary:(NSDictionary *)appUpdateInfo{
BMLog(@"%@",appUpdateInfo);
BOOL update = [[appUpdateInfo objectForKey:@"update"] boolValue];
 if (update) {
[MobClick checkUpdate:@"有新版本更新啦!" cancelButtonTitle:@"我爱怀旧" otherButtonTitles:@"我爱潮流"];
}else{
//您使用的已经是最新的版本!
   }

}

当然,光写这些代码是不能实现版本提醒更新的,还需要到友盟的管理后台进行渠道配置:

组件->自动更新

然后添加一个更新:

这个渠道选择就是你工程中创建的渠道,就是刚我工程中的 kUmengAppstoreChannelId 这个标记,每一个渠道对应一个更新,app网址是更新调整的网址,是你应用程序下载的网页,这里appstoe的地址,然后是版本号,这个版本号是最新的版本号,即你要更新的版本号,然后就是更新日志,他会反映在你程序弹出的弹窗中

时间: 2024-09-27 00:05:30

友盟集成自动更新版本功能的相关文章

Android 云服务器的搭建和友盟APP自动更新功能的实现

setContentView(R.layout.activity_splash); //Bmob SDK初始化--只需要这一段代码即可完成初始化 //请到Bmob官网(http://www.bmob.cn/)申请ApplicationId,具体地址:http://docs.bmob.cn/android/faststart/index.html?menukey=fast_start&key=start_android Bmob.initialize(this, Constant.BMOB_APP

android-关于友盟的自动版本更新(面向小白)

今天说一下关于友盟的自动版本更新(傻瓜式版本更新) 关于自动更新的话,如果让android程序猿自己写的话还是不是那么简单的(对于我这个菜鸟来说...),又要检查当前版本,又要在服务器存储新的版本,又要下载更新等,但是这些复杂的事友盟已经替我们做好了,我们只需要简单的配置一下AndroidManifest.xml文件,之后代码中只填写一句话就可以实现简单的自动版本更新,下面我说一下步骤: 下载最新版SDK的zip包,将其中的libs文件夹合并到本地工程libs子目录下.即把其中的jar文件考到l

友盟(三)高级功能

一.自定义事件 自定义事件可以实现在应用程序中埋点来统计用户的点击行为,比如:统计用户的点击事件,统计用户都点击了什么:统计用户搜索的关键字,看用户都偏好什么产品等等.自定义事件目前包括:计数事件和计算事件. 计数事件:计数事件统计事件的发生次数.独立用户数.事件时长及事件各参数的发生次数.时长. 程序中的某些事件,如登录.分享.下载等,是定性变量(categorical variable),对应的统计项是字符串类型.开发者只需了解它们发生的次数及独立用户数,使用计数事件即可满足. 计算事件:还

nvidia驱动自动更新版本后问题解决 -- failed to initialize nvml: driver/library version mismatch

因为必须关闭桌面窗口, 建议另外一台电脑ssh连接操作 1. 卸载旧版本并关闭图形界面 sudo apt-get remove --purge nvidia-\* sudo service lightdm stop sudo init 3 2. 安装对应版本号驱动 sudo chmod +x cuda_8.0.61_375.26_linux.run sudo sh cuda_8.0.61_375.26_linux.run --tmpdir=/tmp --override 3. 安装cudnn5.

基于git和intotify实现的git提交服务器自动更新的功能

基于inotify实现nodejs的提交后自动同步 首先在一台server上使用nodejs+express启动一个服务器,并使用supervisor 支持修改文件后 自动重启的功能 然后在这个工程上添加git仓库的引用(指向同一个服务器的另一个git仓库所对应的位置) 然后在所有人的本地开发环境也从server仓库中clone git 工程,并进行开发. 当提交代码后,使用inotify监控server 的git仓库文件变化. 如果发生变化后,通知线上运行的server 进行一次git pul

小程序自动更新版本

小程序迭代的比较快,每次发布了新的代码,都更新不及时,着急的时候,得删除了重新搜索才可以.觉得很麻烦,就查了一些方法. 代码如下: // 获取小程序更新机制兼容 if (wx.canIUse('getUpdateManager')) { const updateManager = wx.getUpdateManager() updateManager.onCheckForUpdate(function (res) { // 请求完新版本信息的回调 if (res.hasUpdate) { upd

tomcat自动更新版本的脚本

脚本实现目的: 利用svn更新war包同时删除缓存. 彻底关闭tomcat,用指定用户启动tomcat. 考虑事项: 执行函数为:zzz01 tomcat路径为/usr/local 启动tomcat用户为www 注意xargs的使用 #!/bin/bash function zzz01(){ su- www -c "rm -rf /usr/local/tomcat_imp_stockRecord1/webapps/imp-stockRecord-web" su- www -c &quo

友盟在线参数+自动更新升级SDK实现指定版本强制更新升级

项目上有这样的需求:对指定的版本要求强制升级,同时其它的版本可以选择性升级. 友盟的自动更新功能还是挺好用的,只不过对强制升级这块支持的还不到位. 不过友盟的开发人员也给出了勉强可行的方案: 使用友盟在线参数来控制哪些版本需要强制更新,哪些版本不需要 相关的内容如下: 1.在线参数配置: http://dev.umeng.com/analytics/android/advanced-integration-guide#3 2.强制更新官方代码: https://github.com/nxzhou

Cordova webapp实战开发:(5)如何写一个Andorid下自动更新的插件?

在 <Cordova webapp实战开发:(4)Android环境搭建>中我们搭建好了开发环境,也给大家布置了调用插件的预习作业,做得如何了呢?今天我们来学一下如何自己从头建立一个Andorid下的cordova插件. 本次练习你能学到的 学习如何实现自动更新功能 学习插件类的编写 学习插件的配置 学习插件的调用 主要内容 打开APP后检查版本更新,如果有更新则弹出更新对话框 APP中[检查更新]显示当前版本号,并可以点击进行版本检查更新 如何实现自动更新功能 你可以自己写代码,也可以网上找