harmony 鸿蒙(可选)使用canOpenLink判断应用是否可访问
(可选)使用canOpenLink判断应用是否可访问
使用场景
在应用A想要拉起应用B的场景中,应用A可先调用canOpenLink接口判断应用B是否可访问,如果可访问,再拉起应用B。
说明:
canOpenLink接口不支持判断以App Linking方式跳转的目标应用是否安装。
约束限制
在entry模块的module.json5文件中的querySchemes字段中,最多允许配置50个URL scheme。
接口说明
canOpenLink是bundleManager提供的支持判断目标应用是否可访问的接口。 匹配规则请参考显式Want与隐式Want匹配规则。
操作步骤
调用方操作步骤
在entry模块的module.json5文件中配置querySchemes属性,声明想要查询的URL scheme。
{ "module": { //... "querySchemes": [ "app1Scheme" ] } }
导入ohos.bundle.bundleManager模块。
调用canOpenLink接口。
import { bundleManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; try { let link = 'app1Scheme://test.example.com/home'; 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); }
目标方操作步骤
在module.json5文件中配置uris属性。
{
"module": {
//...
"abilities": [
{
//...
"skills": [
{
// actions不能为空,actions为空会造成目标方匹配失败
"actions": ["ohos.want.action.home"],
"uris": [
{
"scheme": "app1Scheme",
"host": "test.example.com",
"pathStartWith": "home"
}
]
}
]
}
]
}
}
FAQ
- 为什么querySchemes中最多允许配置50个URL scheme?
canOpenLink()接口提供了判断应用是否可以访问的能力。通过该能力,应用可以间接获取到指定应用是否安装等信息。
为了保护系统安全和用户隐私,避免恶意应用扫描应用安装列表等行为,要求开发者在使用canOpenLink()接口时必须配置querySchemes属性,且最多允许配置50个URL scheme。
你可能感兴趣的鸿蒙文章
harmony 鸿蒙FA模型访问Stage模型DataShareExtensionAbility
0
赞
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦