1.0.0
该门户网站正在开发中。文档的完整版本请看这里.
RuStore In-app updates SDK帮助维持用户设备上应用程序的最新版本。
当用户维持应用程序的最新状态时,他们可以体验新功能并利用性能改进和错误修复。
您可以使用RuStore In-app updates SDK来显示应用程序更新过程,该过程支持后台下载和安装更新以及状态控制。用户在更新下载期间可以继续使用您的应用程序。
参阅示例应用程序,以了解如何正确集成更新SDK: https://gitflic.ru/project/rustore/flutter-rustore-update
用户流程示例
SDK 正确运作的条件
RuStore In-app updates SDK 运行需要满足以下条件:
- Android操作系统版本6.0或更高。
- 用户设备上必须安装了RuStore。
- 用户设备上的RuStoreApp版本必须是最新的。
- RuStore应用程序必须被授权安装应用程序。
实现示例
为了了解如何正确集成用于处理 push-通知的包,请参阅示例应用程序:
https://gitflic.ru/project/rustore/flutter-rustore-update/file?file=example
在项目中集成
要将包集成到项目,您需要执行以下命令:
flutter pub add flutter_rustore_update
个命令将在 pubspec.yaml 文件中添加一个字符串:
dependencies:\` \`\`flutter_rustore_up
检查更新的可用性
在请求更新之前,请检查您的应用是否有更新可用。要检查更新的可用性,请调用info()方法。调用此方法时,将检查以下条件:
- 用户设备上必须安装了RuStore。
- 用户设备上的RuStoreApp版本必须是最新的。
- 用户和应用程序不应在RuStore中被封锁。
响应此方法时,您将获得一个 info
对象,其中包含有关更新需求的信息。
RustoreUpdateClient.info().then((info) { \`\`print(info);}).catchError((err) { \`\`print(err);});
nfo 对象包含一组参数,这些参数是确定更新可用性所必需的:
updateAvailability
- 更新的可用性:UPDATE_AILABILITY_NOT_AVAILABLE
- 不需要更新。UPDATE_AILABILITY_AVAILABLE
- 需要下载更新或用户设备上已下载更新。UPDATE_AILABILITY_IN_PROGRESS
- 更新已在下载或安装已启动。UPDATE_AILABILITY_UNKNOWN
- 默认状态。
installStatus
- 如果用户当前正在安装更新,则为更新安装状态:INSTALL_STATUS_DOWNLOADED
- 已下载。INSTALL_STATUS_DOWNLOADING
- 正在下载。INSTALL_STATUS_FAILED
- 错误。INSTALL_STATUS_INSTALLING
- 正在安装。INSTALL_STATUS_PENDING
- 等待中。INSTALL_STATUS_UNKNOWN
- 默认状态。
有当 updateAvailability
字段包含 UPDATE_AILABILITY_AVAILABLE
值时,才能启动更新下载。
方法可能返回错误。可能的错误
下载更新
确认更新可用后,您可以请求用户下载更新,但在此之前,需要使用listener()方法启动更新下载状态监听器。
RustoreUpdateClient.listener((value) { \`\`print( \"listener installStatus \${value.installStatus}\" ); \`\`print( \"listener bytesDownloaded \${value.bytesDownloaded}\" ); \`\`print( \"listener totalBytesToDownload \${value.totalBytesToDownload}\" ); \`\`print( \"listener installErrorCode \${value.installErrorCode}\" ); \`\`if (value.installStatus == INSTALL_STATUS_DOWNLOADED) { \`\`//你可以在这里调用 complete()方法 \`\`}});
state对象描述了更新下载的当前状态。对象包含:
installStatus
- 如果用户当前正在安装更新,则为更新安装状态:INSTALL_STATUS_DOWNLOADED
- 已下载。INSTALL_STATUS_DOWNLOADING
- 正在下载。INSTALL_STATUS_FAILED
- 错误。INSTALL_STATUS_INSTALLING
- 正在安装。INSTALL_STATUS_PENDING
- 等待中。INSTALL_STATUS_UNKNOWN
- 默认状态。
bytesDownloaded
- 已下载的字节数。totalBytesToDownload
- 需要下载的总字节数。installErrorCode
- 下载过程中的错误代码。
多可能的错误可以在"可能的错误"部分找到。
下载与RuStore UI
要启动应用程序更新的下载,请调用download()方法。
RustoreUpdateClient.download().then((value) { \`\`print( \"download code \${value.code}\" );}).catchError((err) { \`\`print( \"download err \${err}\" );});
果用户确认了下载更新,则 value.code = ACTIVITY_RESULT_OK
, 如果拒绝,则 value.code = ACTIVITY_RESULT_CANCELED
。
调用方法后,您可以在监听器中跟踪更新下载的状态。如果在监听器中接收到INSTALL_STATUS_DOWNLOADED状态,您可以调用更新安装方法。建议通知用户更新安装已准备就绪。
方法可能返回错误。可能的错误
强制更新
要启动应用程序强制更新的下载,请调用immediate()方法。
\<br\>RustoreUpdateClient.immediate().then((value) {\<br\> print(\"immediate code \${value.code}\");\<br\>}).catchError((err) {\<br\> print(\"immediate err \${err}\");\<br\>});\<br\>
果用户确认了下载更新,则 value.code = ACTIVITY_RESULT_OK
, 如果拒绝,则 value.code = ACTIVITY_RESULT_CANCELED
。
调用方法后,您可以在监听器中跟踪更新下载的状态。如果在监听器中接收到INSTALL_STATUS_DOWNLOADED状态,您可以调用更新安装方法。建议通知用户更新安装已准备就绪。
方法可能返回错误。更多错误列表可以在"可能的错误"部分找到。
无界面更新
要启动应用程序更新的无界面RuStore下载,请调用silent()方法。
\<br\>RustoreUpdateClient.silent().then((value) {\<br\> print(\"silent code \${value.code}\");\<br\>}).catchError((err) {\<br\> print(\"silent err \${err}\");\<br\>});\<br\>
用方法后,您可以在监听器中跟踪更新下载的状态。如果在监听器中接收到INSTALL_STATUS_DOWNLOADED状态,您可以调用更新安装方法。建议通知用户更新安装已准备就绪。
方法可能返回错误。更多错误列表可以在"可能的错误"部分找到。
更新安装
下载apk更新文件完成后,您可以启动更新的安装。要启动更新的安装,请调用complete()方法。
RustoreUpdateClient.complete().catchError((err) { \`\`print( \"complete err \${err}\" );});
新通过android原生工具进行。如果更新成功,应用程序将关闭。
在更新阶段可能会出现错误。可能的错误
可能的错误
所有插件中的错误都以常量形式实现。常量的描述在const.dart文件中。
如果您收到onFailure响应,则不建议自行向用户显示错误。显示错误可能会对用户体验产生负面影响。
可能的错误列表:
UPDATE_ERROR_DOWNLOAD
- 下载错误。UPDATE_ERROR_BLOCKED
- 系统阻止安装。UPDATE_ERROR_INVALID_APK
- 更新APK无效。UPDATE_ERROR_CONFLICT
- 与当前应用程序版本冲突。UPDATE_ERROR_STORAGE
- 设备存储空间不足。UPDATE_ERROR_INCOMPATIBLE
- 与设备不兼容。UPDATE_ERROR_APP_NOT_OWNED
- 应用程序未购买。UPDATE_ERROR_INTERNAL_ERROR
- 内部错误。UPDATE_ERROR_ABORTED
- 用户拒绝安装更新。UPDATE_ERROR_APK_NOT_FOUND
- 未找到用于启动安装的APK。UPDATE_ERROR_EXTERNAL_SOURCE_DENIED
- 禁止启动更新。例如,在第一个方法中返回更新不可用的响应,但用户调用第二个方法。