当前位置: 首页 > news >正文

【HarmonyOS】判断应用是否已安装

【HarmonyOS】判断应用是否已安装

前言

在鸿蒙中判断应用是否已安全,只是通过包名是无法判断应用安装与否。在鸿蒙里新增了一种判断应用安装的工具方法,即:canOpenLink。

使用该工具函数的前提是,本应用配置了查询标签querySchemes,并且目标应用设置了skills-uris后,会有link完成的串儿,例如:targetAppxx://test.example.com/open

所以需要知道目标方应用是否安装,需要知道对方完整的link串才行。

本应用设置

在这里插入图片描述

{"module": {"querySchemes": ["targetAPPxx" // 替换为目标应用的scheme]}
}

判断安装与否代码示例:

import { hilog } from '@kit.PerformanceAnalysisKit';
import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

struct Index {onClickCheckApp = ()=>{this.canOpenApp();}private canOpenApp(){try {let link = 'targetAPPxx://test.example.com/open'; // 替换成你目标应用的link串儿let canOpen = bundleManager.canOpenLink(link);hilog.info(0x0000, 'testTag', 'canOpenLink successfully: %{public}s', JSON.stringify(canOpen));} catch (err) {let message = (err as BusinessError).message;hilog.error(0x0000, 'testTag', 'canOpenLink failed: %{public}s', message);}}build() {RelativeContainer() {Text("点击检查是否安装").id('IndexHelloWorld').fontSize(50).fontWeight(FontWeight.Bold).alignRules({center: { anchor: '__container__', align: VerticalAlign.Center },middle: { anchor: '__container__', align: HorizontalAlign.Center }}).onClick(this.onClickCheckApp)}.height('100%').width('100%')}
}

目标应用设置

所以link串儿是由 scheme://host/pathStartWith 组成。例如:targetAppxx://test.example.com/open
在这里插入图片描述

{"module": {//..."abilities": [{//..."skills": [{"uris": [{"scheme": "targetAppxx","host": "test.example.com","pathStartWith": "oepn"}]}]}]} 
}
http://www.lryc.cn/news/471901.html

相关文章:

  • Qt Designer客户端安装和插件集(pyqt5和pyside2)
  • 基于边缘计算的智能门禁系统架构设计分析
  • 鸿蒙实现相机拍照及相册选择照片
  • 「C/C++」C++17 之 std::filesystem::recursive_directory_iterator 目录及子目录迭代器
  • 智能EDA小白从0开始 —— DAY30 冉谱微RFIC-GPT
  • Android -- 调用系统相册之图片裁剪保存
  • 读《道德经》让人感到心胸气闷?董仲舒篡改
  • D52【python 接口自动化学习】- python基础之模块与标准库
  • 基于yolov8的布匹缺陷检测系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】
  • SQL Server 中,将单行数据转换为多行数据
  • 解决数组两数之和问题与逻辑推理找出谋杀案凶手
  • uniapp的IOS证书申请(测试和正式环境)及UDID配置流程
  • windows 安装apex_Nvidia Apex安装
  • Laravel5 抓取第三方网站图片,存储到本地
  • DevOps和CI/CD以及在微服务架构中的作用
  • Rust 力扣 - 5. 最长回文子串
  • DDOS防护介绍
  • 深入了解 kotlinx-datetime:配置与使用指南
  • Qt编程技巧小知识点(6)根据 *IDN? 对程控仪器连接状态进行确认
  • 【Android】Kotlin教程(4)
  • 机票电子行程单如何批量查验?Java机票电子行程单查验接口示例-发票查验接口
  • 记录element-ui改造select显示为table,并支持多查询条件
  • Spearman、Pearson、Euclidean、Cosine、Jaccard,用来衡量不同数据之间的相似性或差异性
  • Suno 歌曲生成 API 对接说明
  • 详细且系统的Spring Boot应用开发
  • 线程支持库(C++11)
  • 【计网】深入理解NAT机制,内网穿透与内网打洞,代理服务
  • C# 创建型设计模式----工厂模式
  • java中Scanner的nextLine和next方法
  • 2024年全国山洪径流模拟与洪水危险性评价技术及典型地区洪水淹没及损失分析