Update the app, pass in the updated address, and update the app. 更新app, 传入更新的地址, 进行app更新
The Android part is implemented using DownloadManager. If the file has been downloaded, install it directly. Android部分使用DownloadManager实现.若文件已下载, 则直接安装.
The Ios section does not support external updates, skip the App Store. Ios部分不支持外部更新, 跳转App Store.
import 'package:update_app/update_app.dart';
/// Download the app and update
///
/// appleId: This is the app id of the app store, used to jump to the app store
/// url: This is the URL to download the apk file
/// title: Android download the title displayed in the notification bar, generally use the file name, or like this `update version 1.6`
/// description: Android download the description displayed in the notification bar, similar to the subtitle
///
/// @return `-1` -> `download failed`, `0` -> `There is a current apk locally, and the download is successful`, other (int) -> `downloadId`
var downloadId = await
UpdateApp.updateApp(url: "apkPath", appleId:"375380948", title:"通知标题", description:"通知描述");
/// Query apk download progress
///
/// downloadId: [updateApp] 返回的downloadId
///
/// @return [DownloadProcess]
/// current: Currently downloaded length
/// count: Total length
/// status: [ProcessState]
/// STATUS_PENDING: [ProcessState.STATUS_PENDING](https://developer.android.com/reference/android/app/DownloadManager#STATUS_PENDING)
/// STATUS_RUNNING: [ProcessState.STATUS_RUNNING](https://developer.android.com/reference/android/app/DownloadManager#STATUS_RUNNING)
/// STATUS_PAUSED: [ProcessState.STATUS_PAUSED](https://developer.android.com/reference/android/app/DownloadManager#STATUS_PAUSED)
/// STATUS_SUCCESSFUL: [ProcessState.STATUS_SUCCESSFUL](https://developer.android.com/reference/android/app/DownloadManager#STATUS_SUCCESSFUL)
/// STATUS_FAILED: [ProcessState.STATUS_FAILED](https://developer.android.com/reference/android/app/DownloadManager#STATUS_FAILED)
var process = await
UpdateApp.downloadProcess(downloadId: downloadId);
appleId - This is the app id of the app store, used to jump to the app store
url - This is the URL to download the apk file
title - Android download the title displayed in the notification bar, generally use the file name description - Android
download the description displayed in the notification bar, similar to the subtitle
-1
-> download failed
0
-> There is a current apk locally, and the download is successful
other (int) -> downloadId
downloadId - [updateApp] 返回的downloadId
[DownloadProcess]
current: Currently downloaded length
count: Total length
status: [ProcessState]
STATUS_PENDING: ProcessState.STATUS_PENDING
STATUS_RUNNING: ProcessState.STATUS_RUNNING
STATUS_PAUSED: ProcessState.STATUS_PAUSED
STATUS_SUCCESSFUL: ProcessState.STATUS_SUCCESSFUL
STATUS_FAILED: ProcessState.STATUS_FAILED
- Download using DownloadManager
使用DownloadManager进行下载 - Monitor download completion broadcast
监听下载完成广播 - Adapt Android 6.0 Runtime Permissions Files
are stored in the app directory, no need to apply for runtime permissions
适配Android 6.0运行时权限 文件存储在app目录, 不需要申请运行时权限 - Adapt Android 7.0FileProvider
适配Android 7.0FileProvider - Adapt Android 8.0 installation permissions
适配Android 8.0安装权限
Adapt [Android 9.0 Network Security Configuration] (https://developer.android.com/training/articles/security-config)
适配Android 9.0网络安全配置
- Jump to the app store 跳转应用商店