全部产品

快速开始

更新时间:2020-06-22 18:29:35

在 mPaaS 控制台发布 App 的新版本,客户端可以通过升级接口检测到该新版本,进而提醒用户下载更新。

本文介绍如何添加与发布管理功能相关的 升级 SDK。目前,升级 SDK 支持 原生 AAR 接入mPaaS Inside 接入组件化接入 三种接入方式。

整个过程分为以下四步:

  1. 添加 SDK
  2. 工程配置
  3. 初始化 mPaaS(仅原生 AAR 接入或 mPaaS Inside 接入需要)
  4. 升级检测

前置条件

添加 SDK

原生 AAR 方式

参考 AAR 组件管理,通过 组件管理(AAR) 在工程中安装 升级(UPGRADE)组件。

mPaaS Inside 方式

在工程中通过 组件管理 安装 升级(UPGRADE)组件。

更多信息,参考 管理组件依赖 > 增删组件依赖

组件化方式

在 Portal 和 Bundle 工程中通过 组件管理 安装 升级(UPGRADE) 组件。

更多信息,参考 管理组件依赖 > 增删组件依赖

工程配置

配置 AndroidManifest

  1. AndroidManifest.xml 中添加以下权限:

    1. <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
  2. 在 portal 工程主 module 的 src/main/res/xml 目录下创建文件 file_paths.xml,文件内容为:

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <resources>
    3. <paths>
    4. <external-files-path
    5. name="download"
    6. path="com.alipay.android.phone.aliupgrade/downloads" />
    7. <external-path
    8. name="download_sdcard"
    9. path="ExtDataTunnel/files/com.alipay.android.phone.aliupgrade/downloads" />
    10. </paths>
    11. </resources>
  3. AndroidManifest.xml 文件中添加以下配置:

    1. <provider
    2. android:name="android.support.v4.content.FileProvider"
    3. android:authorities="${applicationId}.fileprovider"
    4. android:exported="false"
    5. android:grantUriPermissions="true">
    6. <meta-data
    7. android:name="android.support.FILE_PROVIDER_PATHS"
    8. android:resource="@xml/file_paths" />
    9. </provider>

添加资源

说明:如果您使用的是 mPaaS Inside 或原生 AAR 接入方式,则需要将以下资源加入到您的应用当中,否则将无法正常使用升级组件。点击此处 获取资源文件。

values 目录下 strings.xmlstyles.xmlcolors.xml 的内容合并即可。

初始化 mPaaS

如果您使用原生 AAR 接入或 mPaaS Inside 接入方式,则需要初始化 mPaaS。

Application 对象中添加以下代码:

  1. public class MyApplication extends Application {
  2. @Override
  3. protected void attachBaseContext(Context base) {
  4. super.attachBaseContext(base);
  5. // mPaaS 初始化回调设置
  6. QuinoxlessFramework.setup(this, new IInitCallback() {
  7. @Override
  8. public void onPostInit() {
  9. // 此回调表示 mPaaS 已经初始化完成,mPaaS 相关调用可在这个回调里进行
  10. }
  11. });
  12. }
  13. @Override
  14. public void onCreate() {
  15. super.onCreate();
  16. // mPaaS 初始化
  17. QuinoxlessFramework.init();
  18. }
  19. }

快速升级检测

快速检测新版本,仅返回检测结果:

  1. MPUpgrade mMPUpgrade = new MPUpgrade();
  2. // 同步方法,子线程中调用
  3. int result = mMPUpgrade.fastCheckHasNewVersion();
  4. if (result == UpgradeConstants.HAS_NEW_VERSION) {
  5. // 有新版本
  6. } else if (result == UpgradeConstants.HAS_NO_NEW_VERSION) {
  7. // 没有新版本
  8. } else if (result == UpgradeConstants.HAS_SOME_ERROR) {
  9. // 错误
  10. }