App应用的版本升级与更新,该采用何种方案?

2016-12-12 13:34 86 0 原作者: CP舍得 来自: 产品经理体系
简介
App应用的版本升级与更新,该采用何种方案?今天体系内训群的同学们,讨论起APP升级该如何提醒的双同学hi,我也有一个升级问题,请教下哈,其他同学知道的也可以回复~有一个app,我刚从应用商店下载完,初始屏幕就让我 ...

App应用的版本升级与更新,该采用何种方案?


 

今天体系内训群的同学们,讨论起APP升级该如何提醒的

 

双同学>hi,我也有一个升级问题,请教下哈,其他同学知道的也可以回复~有一个app,我刚从应用商店下载完,初始屏幕就让我升级,强推。


双同学>这个是不是bug?按道理,我刚下载的版本应该是最新的,不应该再提示操作一遍哪?是有什么技术难点嘛?


等高同学>更新版本没有上传到应用商店或者上传了还没审核通过上架,而老版本设置了强制升级


遗忘同学>我刚经历了这个问题,后台做了强制升级,但是版本号与刚下载的不符


关飞张鱼同学>好多应用商店都是抓取别的比较火的应用商店的包,而且是分批抓取,这种情况很有可能是还没有抓取到最新的包。



   我们的app当新版本出来之后,怎么提醒用户进行升级呢? 在这里收集了现行的几种方案,希望能解答大家的疑惑。

方案1. 服务器发送通知的方式。



【表现形式】当发布新版本时,服务器向所有(未更新的)用户发送通知消息(短信、邮件、APP消息等),提醒更新。


    当有新版本时,由服务器向所有用户发送通知,提醒用户进行更新。



Advantages:

针对下载应用的用户,均可接收到版本更新的通知,根据内容进行更新操作。


Disadvantages:

①如用户已更新到最新版本,收到有新版本的提示。(仅APP内置通知消息提醒时,可以依据本地版本的更新情况,来解决该问题)
    ②如用户关闭接收push通知,用户j将无法收到新版本提示。(除非通过短信、邮件等方式来补充,但是会形成二次用户干扰)


   


方案2.本地定期巡检,调启通知的方式。

【表现形式】本地应用定期,访问比对服务器的版本,如有更新进行 “提示框”提醒。

建议在应用进入后台的时候再比对版本更新信息,根据差异信息发送本地通知。因应用操作过程中,如中断时式升级-会带来负向用户体验的。


方法:服务器提供一个访问现有版本的接口,当应用进入后台的时候,本地代码可以每隔一段时间(1天,或者3天,或者1个礼拜(不能一进入后台就访问接口))去访问服务器获取当前应用的版本,如果有更新,则弹出对话框提醒用户进行更新,你是用户该如何抉择呢?


Advantages:不影响用户使用app,是在用户暂时不用app的时候进行更新,用户更愿意选择更新版本。



Disadvantages

    不能及时更新版本。


方案3.服务器 比对的方式。
 
【表现形式】本地应用 通过内置接口,在访问应用某模块时,校验服务器版本信息,如有更新进行 “提示框”提醒。

    需要在服务器提供一个接口,访问接口(在使用应用中间(比如进入某个模块,这个模块调用此接口))进行提醒更新。
Advantages:更新及时。用户可以及时的获取最新版本。
Disadvantages:使用过程的的骚扰。用户在应过程中的提示,会造成用户的正常业务的使用(一般用户会忽略)。




其他方案:第三方应用商城的提醒。
   如友盟、360等有自动提醒的功能,利用其自带的推送功能及平滑的升级方案帮用户后台静默式升级。
   实现方法:需要及时更新渠道的最新版本的APP应用包的版本号,更新日志及openURL,然后只需添加一行代码来完成自动更新检查。
   注:这里是借用第三方的方式,就无所谓优缺点及时选择、要不就去适应罢了。(且各个第三方渠道、分发商城模式会存在微小差异,不是这里能hold住的!)
         


附录1: 友盟的方法,具体实现请看《 iOS自动更新SDK集成指南》:http://dev.umeng.com/auto-update/ios-doc/integration

--------------------------------------------------------------

附录2:
判断程序处于后台代码
import java.util.List;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.ActivityManager.RunningAppProcessInfo;
import android.content.Context;
public class BaseActivity extends Activity {
        @Override
        protected void onStop() {
               // TODO Auto-generated method stub
               super.onStop();
               if (!isAppOnForeground()) {
                       //app 进入后台 
                       //全局变量isActive = false 记录当前已经进入后台
               }
        }
      @Override
        protected void onResume() {
               // TODO Auto-generated method stub
              super.onResume();
               //if (!isActive) {
                       //app 从后台唤醒,进入前台                    
                        //isActive = true;
               //}
        }
        public boolean isAppOnForeground() {
               ActivityManager activityManager = (ActivityManager)getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
               String packageName = getApplicationContext().getPackageName();
               List appProcesses = activityManager
                               .getRunningAppProcesses();
               if (appProcesses == null)
                       return false;
                      for (RunningAppProcessInfo appProcess : appProcesses) {
                 if (appProcess.processName.equals(packageName)
                            && appProcess.importance ==RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
                               return true;
                       }
               }
               return false;
        }
}

 


     产品经理体系,欢迎志同道合者的产品经理及与相关人士加入,分享、学习、积累....

    "思想在碰撞中产生火花!"                   

     体系官网 http://www.cpjltx.com

    体系群组 http://www.cpjltx.com/qqdh.html

    体系介绍 http://www.cpjltx.com/about.html

    体系活动 http://www.cpjltx.com/hd

    体系微博 http://weibo.com/cpjltx

    体系公众号 CPJLTX

    与分享中寻觅成就,一路坚持.....


收藏 邀请

鲜花

握手

雷人

路过

鸡蛋

相关阅读

此篇文章已有0人参与评论

请发表评论

相关分类

精彩阅读

精选资讯

推荐资讯

广告位

思想在碰撞中产生火花

官方微信

官方微博

投稿邮箱

TG@CPJLTX.COM

产品经理体系-总部:位于北京市中关村

商务合作:SW@CPJLTX.COM

产品经理体系 Copyright© 2006-2017  京ICP备14003958号-1

联系咨询 - Archiver-手机版- 产品经理体系

【免责声明】产品经理体系网,发布内容仅服务于体系内部交流学习,如有雷同纯属巧合;