鸿蒙平台InstallPlugin使用指南
InstallPlugin是一款专为鸿蒙平台适配的Flutter插件,提供应用安装功能。支持网络下载安装、本地安装包安装以及跳转应用商店,兼容HAP格式。通过简单API即可实现安装流程,包含进度监听和状态回调。需配置读写存储和安装权限,已在多个Flutter版本测试验证。该插件简化了鸿蒙应用安装流程,提升开发效率。开源社区地址:https://openharmonycrossplatform.cs
插件介绍
InstallPlugin 是一个 Flutter 插件,用于在鸿蒙平台上实现应用安装功能。该插件基于 install_plugin 开发,经过适配和优化,完美支持鸿蒙设备,帮助开发者实现应用的本地安装和网络安装功能。
主要功能
- 网络安装:从网络下载应用安装包并自动安装
- 本地安装:安装本地存储的应用安装包
- 应用商店跳转:跳转到应用商店查看或下载应用
- 支持多种安装包格式:支持 HAP(鸿蒙应用安装包)格式
核心特性
- 简单易用的 API 接口
- 支持进度监听和状态回调
- 支持权限申请和管理
- 适配鸿蒙平台的安装流程
安装与使用
1. 依赖配置
在Flutter项目的pubspec.yaml文件中添加以下依赖配置,使用AtomGit作为代码托管平台:
dependencies:
flutter_install_plugin_ohos:
git:
url: https://atomgit.com/openharmony-sig/fluttertpc_install_plugin.git
path: ohos
2. 安装依赖
在项目根目录执行以下命令安装依赖:
flutter pub get
3. 导入包
在需要使用InstallPlugin功能的Dart文件中导入包:
import 'package:flutter_install_plugin_ohos/install_plugin.dart';
API 使用示例
1. 网络安装应用
import 'package:dio/dio.dart';
import 'package:flutter_install_plugin_ohos/install_plugin.dart';
import 'package:path_provider/path_provider.dart';
Future<void> networkInstallApk() async {
// 下载应用安装包
var appDocDir = await getTemporaryDirectory();
String savePath = appDocDir.path + '/entry-default-signed.hap';
String fileUrl = "http://1.94.197.174/jiege/entry-default-signed.hap";
String ohosAppId = 'yylx.danmaku.bili';
try {
await Dio().download(fileUrl, savePath,
onReceiveProgress: (count, total) {
final progress = count / total;
print('下载进度: ${(progress * 100).toStringAsFixed(0)} %');
});
// 安装应用
String installApk = 'installApk';
final res = await InstallPlugin.install(savePath, installApk, ohosAppId: ohosAppId);
if (res['isSuccess'] == true) {
print('应用安装成功');
} else {
print('应用安装失败: ${res['errorMessage']}');
}
} catch (e) {
print('下载或安装失败: $e');
}
}
2. 本地安装应用
import 'package:file_picker_ohos/file_picker_ohos.dart';
import 'package:flutter_install_plugin_ohos/install_plugin.dart';
Future<void> localInstallApk() async {
try {
// 选择本地安装包文件
FilePickerResult? result = await FilePicker.platform.pickFiles();
if (result != null) {
String filePath = result.files.single.path ?? '';
// 安装应用
String installApk = 'installApk';
final res = await InstallPlugin.install(filePath, installApk);
if (res['isSuccess'] == true) {
print('应用安装成功');
} else {
print('应用安装失败: ${res['errorMessage']}');
}
} else {
print('用户取消了文件选择');
}
} catch (e) {
print('文件选择或安装失败: $e');
}
}
3. 跳转到应用商店
import 'package:flutter_install_plugin_ohos/install_plugin.dart';
Future<void> goStore() async {
String appUrl = 'store://appgallery.huawei.com/app/detail?id=yylx.danmaku.bili';
String goStore = 'goStore';
try {
await InstallPlugin.install(appUrl, goStore);
print('已跳转到应用商店');
} catch (e) {
print('跳转到应用商店失败: $e');
}
}
4. 直接调用安装方法
import 'package:flutter_install_plugin_ohos/install_plugin.dart';
Future<void> installApkDirectly() async {
String filePath = '/path/to/your/app.hap';
String ohosAppId = 'com.example.app';
try {
final res = await InstallPlugin.installApk(filePath, ohosAppId: ohosAppId);
if (res['isSuccess'] == true) {
print('应用安装成功');
} else {
print('应用安装失败: ${res['errorMessage']}');
}
} catch (e) {
print('安装失败: $e');
}
}
权限配置
在鸿蒙平台上,使用InstallPlugin需要申请以下权限:
<!-- 读取外部存储权限 -->
<uses-permission ohos:name="ohos.permission.READ_MEDIA"/>
<!-- 写入外部存储权限 -->
<uses-permission ohos:name="ohos.permission.WRITE_MEDIA"/>
<!-- 安装应用权限 -->
<uses-permission ohos:name="ohos.permission.INSTALL_BUNDLE"/>
注意事项
-
权限申请:在使用InstallPlugin前,需要确保已经申请了必要的权限
-
安装包格式:鸿蒙平台支持 HAP 格式的应用安装包
-
应用 ID:安装应用时需要提供正确的鸿蒙应用 ID(ohosAppId)
-
网络请求:网络安装需要确保设备有网络连接
-
存储路径:本地安装需要确保安装包文件存在且可读
-
兼容性:该插件已在以下版本中测试通过:
- Flutter: 3.7.12-ohos-1.1.3; SDK: 5.0.0(12); IDE: DevEco Studio: 5.1.0.828; ROM: 5.1.0.130 SP8;
- Flutter: 3.22.1-ohos-1.0.3; SDK: 5.0.0(12); IDE: DevEco Studio: 5.1.0.828; ROM: 5.1.0.130 SP8;
总结
InstallPlugin 是一个功能强大、简单易用的Flutter插件,为鸿蒙平台提供了便捷的应用安装功能。它支持网络安装、本地安装和应用商店跳转等多种安装方式,帮助开发者快速实现应用的安装和更新功能。InstallPlugin 的设计理念注重性能和易用性,能够极大提升开发体验和应用安装效率。
欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net
更多推荐




所有评论(0)