bmob开发文档-自动更新

上传人:ldj****22 文档编号:35440073 上传时间:2018-03-15 格式:PDF 页数:11 大小:746.65KB
返回 下载 相关 举报
bmob开发文档-自动更新_第1页
第1页 / 共11页
bmob开发文档-自动更新_第2页
第2页 / 共11页
bmob开发文档-自动更新_第3页
第3页 / 共11页
bmob开发文档-自动更新_第4页
第4页 / 共11页
bmob开发文档-自动更新_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《bmob开发文档-自动更新》由会员分享,可在线阅读,更多相关《bmob开发文档-自动更新(11页珍藏版)》请在金锄头文库上搜索。

1、 首页产品案例价格下载文档社区关于Android自动更新组件文档快速入门1、添加资源文件下载SDK提供的res文件夹拷入工程目录下,和工程本身res目录合并。res文件夹下载地址:http:/ 请不要随便删除其中的文件。 2. BmobSDK提供的资源文件都以bmob_开头。2、配置AndroidManifest.xml1.打开AndroidManifest.xml,添加SDK需要的权限到标签下:说明:android.permission.WRITE_EXTERNAL_STORAGE 权限允许将下载的apk保存到sd卡中。android.permission.ACCESS_NETWORK_ST

2、ATE 权限允许检查网络状态,从而根据不同网络环境决定何种下载策略, 务必添加该权限。2.添加渠道到标签下:说明:BMOB_CHANNEL用来标注应用推广渠道,不同渠道可以上传不同更新包,您可以使用20位以内的英文和数字为渠道定 名,替换value中的Channel ID。如果不添加,将不区分渠道。3.添加Activity到标签下:3、初始化AppVersion表一行代码轻松搞定AppVersion表(注意:请务必将该表在WEB端设置为只读模式):SDK提供了初始化自动创建AppVersion表的方法,不再需要开发者手动在web端创建。只需要在你使用自动更新功能的地方 调用如下代码:BmobU

3、pdateAgent.initAppVersion(this);注:1、initAppVersion方法适合开发者调试自动更新功能时使用,一旦AppVersion表在后台创建成功,建议屏蔽或删除此 方法,否则会生成多行记录。2、如果调用了此方法后,在管理后台没有看见AppVersion表生成,建议到手机的应用管理界面清除该应用的数据,并再次调用该方法,也可到LogCat中查看与bmob相关错误日志。3、如果2方法尝试多次之后仍然无效,请手动创建AppVersion表,表的各个字段名称请查看下表。4、调用自动更新接口最常见的自动更新模式是:当用户进入应用首页后,如果处于wifi环境则检测更新,如

4、果有更新,弹出对话框提示有新版 本,用户点选更新开始下载更新。实现的方法是,在应用程序入口Activity里的OnCreate()方法中调用如下代码:public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);BmobUpdateAgent.update(this);1. 考虑到用户流量的限制,目前我们默认在WiFi接入情况下才进行自动提醒。如需要在任意网络环境下都进行更新自动提 醒,则请在update调用之前添加以下代码:BmobUpdateAgent.setUpdateOnlyWifi

5、(false)2. 如果你发现调用update方法无反应,可使用下面自定义功能中的监听检测更新的结果提到的方法来监听自动更新的结果,具体如下:BmobUpdateAgent.setUpdateListener(new BmobUpdateListener() Overridepublic void onUpdateReturned(int updateStatus, UpdateResponse updateInfo) / TODO Autogenerated method stub/根据updateStatus来判断更新是否成功)强制更新应用场景:如果应用需要屏蔽旧版本,强制用户必须更新升级

6、到最新版才能继续使用。SDK中为自动更新方式提供了强制更新功能,当开发者开启强制更新功能(即将后台的AppVersion表中的isforce字段置为true)时,客户端调用BmobUpdateAgent.update(context)方法后,更新对话框只保留“立即更新”按钮且不再支持回退操作。 其效果图如下:忽略版本更新SDK中为自动更新方式提供了忽略版本更新功能,当用户勾选”忽略该版“选项时,再次调 用BmobUpdateAgent.update(context)则不再出现版本更新对话框。注:强制更新和忽略版本更新只支持自动更新方式。5、上传最新版本的APK文件初始化AppVersion表成

7、功后,开发者在管理后台的数据浏览页中就可以看见AppVersion表了,该表的结构如下:字段名称字段类型 是否必填 字段说明update_log String是更新日志versionString是版本名称version_iNumber 是版本号platformString是平台,注意:“Android“为安卓平台标示,“ios“为ios平台标示target_size String是Apk文件大小isforceBoolean 否是否强制更新pathFile是/否Apk文件android_url String是/否apk市场地址(path字段和本字段必填其中一个)channelString否渠道标

8、示ios_urlString否iOS app store地址(如果是ios记录一定要填写)创建好这个表结构之后就可以新增一些记录,把应用的信息和下载地址(或者上传文件)填写上去,如下图所示:注:1、target_size为必填项,是为了解决当apk下载过程中切换网络导致的解析包出现错误的问题,请手动填入通过如下代 码得到的target_size值(不需要单位):long target_size = new File(“sdcard/应用名.apk“).length()假如,上面的target_size的值为1023380,则只需要在target_size字段中填写1023380就行。2、新添加

9、的数据记录的version_i(对应应用中的version code,如下图)的数值要大于手机中安装的应用的version number,否则无法生效。另外,platform需要根据实际情况填写平台信息。3、新版SDKV3.3.2调用initAppVersion方法后,你会看到AppVersion表的path字段有一个test.apk的文件,其实这个 文件是个空的文件,不必过于纠结,将test.apk删除后再上传自己的apk文件即可。4、新版SDKV3.3.4允许下载已上传到应用市场上的apk文件,因此,path和android_url两者填任意一个即可,若都填 写,默认优先下载path字段下

10、的apk文件。5、新版SDKV3.3.4新增对update_log字段内容进行文字排版的功能,只需要在分段处加上分隔符;即可(UI效果如下 图)具体格式参考如下范例:1、修复第三方登陆成功后无法获取本地用户信息的问题;2、修复设置缓存策略后无法获取本地缓存信息的问题;3、修复调用云端代码(callEndpoint)方法的成功回调的返回值中含有“results”的问题;4、新版文件管 理中对本地缩略图的处理方法新增压缩质量的参数。6、集成检测SDK中默认开启了集成检测功能,在调用任意的更新接口后,我们将替您自动检查上述集成过程中2、3两个步骤是否被正确 完成。 如果正确完成不会出现任何提示,否则

11、会以如下的toast提示您。你可以通过调用BmobUpdateAgent.setUpdateCheckConfig(false)来禁用此功能。toast的含义如下:“Please copy all resources (res/) from SDK to your project!“:请检查是不是把res文件夹下所有的资源文件都放到了工程 中。“Please add Permission in AndroidManifest!“:请检查上述步骤中的相关权限是否正确添加。“Please add Activity in AndroidManifest!“:请检查上述步骤中的Activity是否正确

12、添加。其他更新方式除了在快速入门中提到的自动更新之外,Bmob自动更新SDK还支持另外两种场景:手动更新、静默更新。 下面将详细介绍 这两种场景的接口及默认行为。手动更新许多应用的设置界面中都会有检查更新等类似功能,需要用户主动触发而检测更新。它的默认行为基本和自动更新基本一 致。它和自动更新的主要区别是:在这种手动更新的情况下,无论网络状况是否Wifi,无论用户是否忽略过该版本的更新, 都可以像下面的示例一样在按钮的回调中发起更新检查,代替update(Context context):public void onClick(View v) BmobUpdateAgent.forceUpda

13、te(mContext);静默下载更新当用户进入应用首页后如果处于wifi环境检测更新,如果有更新,后台下载新版本,如果下载成功,则进行通知栏展示,用 户点击通知栏开始安装。静默下载过程中如果wifi断开,则会停止下载。实现的方法是:在应用程序入口Activity里的OnCreate()方法中调用如下代码:public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);BmobUpdateAgent.silentUpdate(this);自定义功能恢复默认设置BmobUpdateAgent.s

14、etDefault()设置更新的网络条件BmobUpdateAgent.setUpdateOnlyWifi(boolean updateOnlyWifi)注:updateOnlyWifi:true表示只在wifi环境下检测更新,false表示所有环境下均可检测更新监听检测更新的结果如果开发者想自己处理检测更新的结果,可以按如下步骤,实现更新监听接口,自主处理更新事件:BmobUpdateAgent.setUpdateListener(new BmobUpdateListener() Overridepublic void onUpdateReturned(int updateStatus, U

15、pdateResponse updateInfo) / TODO Autogenerated method stubif (updateStatus = UpdateStatus.Yes) /版本有更新else if(updateStatus = UpdateStatus.No)Toast.makeText(ActAutoUpdate.this, “版本无更新“, Toast.LENGTH_SHORT).show();else if(updateStatus=UpdateStatus.EmptyField)/此提示只是提醒开发者关注那些必填项,测试成功后,无需对用户提示Toast.makeTe

16、xt(ActAutoUpdate.this, “请检查你AppVersion表的必填项,1、target_size(文件大小)是否填写;2、path或者android_url两者必填其中一项。“, Toast.LENGTH_SHORT).show();else if(updateStatus=UpdateStatus.IGNORED)Toast.makeText(ActAutoUpdate.this, “该版本已被忽略更新“, Toast.LENGTH_SHORT).show();else if(updateStatus=UpdateStatus.ErrorSizeFormat)Toast.makeText(ActAutoUpdate.this, “请检查target_size填写的格式,请使用file.length()方法获取apk大小。“, Toast.LENGTH_SHORT).show();else if(update

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号