首页 > 其他分享 >Flutter OHOS fluttertpc_app_installer(打开应用商店和安装APP)

Flutter OHOS fluttertpc_app_installer(打开应用商店和安装APP)

时间:2024-12-24 10:08:45浏览次数:4  
标签:code console String err appPackageName APP fluttertpc message app

fluttertpc_app_installer

打开应用商店和安装APP

用法

String androidAppId = '';
String iOSAppId = '';
String ohosAppId = '';

AppInstaller.goStore(androidAppId, iOSAppId, ohosAppId);
	

AppInstaller.installApk('/sdcard/apk/app-debug.apk');

鸿蒙OS代码

获取app包名

     getAppPackageName(appId: String): String {
let appPackageName: String = appId;
if (appPackageName == null || appPackageName == '') {
  bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION).then(bundleInfo => {
appPackageName = bundleInfo.name;
console.info("AppInstallerOhosPlugin appPackageName is then  " + appPackageName);
  });
}
return appPackageName;
  }

打开市场

    /**
   * open appstore
   * */
  goAppStore(appId: String, result: MethodResult) {
if (appId == null) {
  console.info("AppInstallerOhosPlugin appPackageName is null  ");
  return;
}
try {
  const request: Want = {
parameters: {
  bundleName: appId
}
  };
  productViewManager.loadProduct(getContext(this) as common.UIAbilityContext, request, {
onError: (error: BusinessError) => {
  console.info('AppInstallerOhosPlugin',
`loadProduct one rror.code is ${error.code}, message is ${error.message}`);
  result.success(false);
}
  });
  result.success(true);
} catch (err) {
  console.info('AppInstallerOhosPlugin', `loadProduct failed.code is ${err.code}, message is ${err.message}`);
  result.success(false);
}
  }

安装app

  installApp(appSrc: String) {
//1.get permissions
try {
  let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
  atManager.requestPermissionsFromUser(getContext(this), ['ohos.permission.ENTERPRISE_INSTALL_BUNDLE'])
.then(async (permission) => {
  // if (permission.authResults[0] !== 0) {
  //   return
  // }
  this.startInstallApp(appSrc);
});
} catch (err) {
  console.info('AppInstallerOhosPlugin',
`Permission application failed.code is ${err.code}, message is ${err.message}`);
}
  }


  startInstallApp(appSrc: String) {
//2.to install
let bundleId: String = this.getAppPackageName('');
let wantTemp: Want = {
  bundleName: bundleId.toString(),
  abilityName: 'EntryAbility',
};
let hapFilePaths: Array<string> = [appSrc?.toString()];

installBundle.install(wantTemp, hapFilePaths).then(() => {
  console.info('AppInstallerOhosPlugin Succeeded in installing bundles.');
}).catch((err: BusinessError) => {
  console.error(`AppInstallerOhosPlugin Failed to install bundles. Code is ${err.code}, message is ${err.message}`);
});
  }

标签:code,console,String,err,appPackageName,APP,fluttertpc,message,app
From: https://www.cnblogs.com/cnblogzzy/p/18626729

相关文章

  • 小迪安全->基础入门-APP应用&微信小程序&原生态开发&H5+Vue技术&WEB封装打包&反编译抓
    知识点:1、基础入门-APP应用-开发架构安全问题2、基础入门-小程序应用-开发架构安全问题通用:1、反编译-得到源码-源码提取资产(泄漏的配置信息)-安全测试2、抓包-资产-安全测试一、演示案例-移动App-开发架构-原生&H5&封装等1、原生开发安卓一般使用java语言开发,当然现在也有......
  • 解决 高版本SpringBoot整合Swagger 启动报错Failed to start bean ‘documentationPlu
    解决高版本SpringBoot整合Swagger启动报错Failedtostartbean‘documentationPluginsBootstrapper‘问题|Id|Title|DateAdded|SourceUrl|PostType|Body|BlogId|Description|DateUpdated|IsMarkdown|EntryName|CreatedTime|IsActive|AutoDesc|A......
  • 使用burp抓取模拟器app数据包详细教程
    使用burp抓取模拟器app数据包详细教程1.设置代理查看本机ip打开burp设置代理进入模拟器,打开网络设置保存,打开浏览器访问这个ip,下载CACertificate在本机的逍遥安卓下载里面就有了cacert.der下载的证书文件下一步对证书进行pemopensslx509-informder-i......
  • 记录---uniapp 安卓端实现录音功能,保存为amr/mp3文件
    ......
  • SpringBoot基于安卓的高校社交App系统(源码+vue+uinapp+部署文档等)
    详细视频演示文章底部名片,获取项目的完整演示视频,免费解答技术疑问项目介绍  SpringBoot基于安卓的高校社交App系统,旨在为高校学生打造一个专属的线上社交互动平台,融合校园生活、学习交流、兴趣拓展等多元功能,打破校园人际交往的时空限制,增进同学间的了解与合作,丰......
  • APP 渗透测试指南(一)--- 安卓测试环境部署(超级详细)(成为移动黑客,手机kali安装最简单教
    绪论如果各位师傅觉得有用的话,可以给我点个关注~~如果师傅们有什么好的建议也欢迎联系我~~感谢各位师傅的支持~~投票   不好意思各位师傅,最近断更了好久,工具太多了写不过来了,后续会继续保持更新!!!想麻烦各位师傅进行一下投票,后续会优先更新投票数量最多的内容! ......
  • Esxi 使用 RDM (Raw Device Mapping) 功能直接将磁盘分配给虚拟机,直通
    如果你只想直通单个硬盘,而不是整个SATA控制器,也可以使用RDM(RawDeviceMapping)功能直接将磁盘分配给虚拟机。或者是你的控制器不支持直通,也可以用这种方法将所有的硬盘直接分配给虚拟机使用。 1、创建一个专门用来存储RDM映射文件的目录mkdir/vmfs/volumes/datast......
  • uni-app开发订单列表页面
    目录一:功能描述二:功能实现一:功能描述订单列表页面包含三个部分,最上面显示订单的状态信息,可以根据订单进行切换,中间显示订单的商品和价格信息,最下面显示订单的操作按钮,可以根据不同的状态操作订单。二:功能实现1:状态切换 <viewclass="nav-basebg-white">   ......
  • 基于移动APP的数字疗法GuessWhat:创新、应用与展望
    一、引言1.1研究背景与意义随着科技的迅猛发展,DTx作为一种新兴的医疗手段正逐渐崭露头角。它借助软件程序驱动,以循证医学为基石,为疾病的预防、管理与治疗开辟了新路径。在诸多疾病领域,DTx都展现出了独特的潜力,尤其是在神经疾病与心理健康领域,其应用正日益广泛。自闭症,作为......
  • 由 Mybatis 源码畅谈软件设计(二):MappedStatement 和 SqlSource
    作者:京东保险王奕龙本节我们来介绍org.apache.ibatis.mapping.MappedStatement(映射SQL语句声明的类),它是MyBatis框架中的一个核心类,也是向后不断学习Mybatis源码的基础。在这部分源码中,最值得关注的设计原则是“信息隐藏”,它是在《软件设计哲学》中提到的一个观点,简单来说就......