export async function isGaodeMapInstalled(): Promise<boolean> {
let exist: boolean = false;
try {
let link: string = 'amapuri://com.amap.hmapp/open';
let data: boolean = bundleManager.canOpenLink(link);
console.log(0x0000, 'testTag', 'canOpenLink successfully: %{public}s', JSON.stringify(data));
exist = data;
} catch (err) {
let message = (err as BusinessError).message;
console.log(0x0000, 'testTag', 'canOpenLink failed: %{public}s', message);
exist = false;
}
return exist;
}

- 发布:2025-05-13 15:28
- 更新:2025-05-13 16:28
- 阅读:56
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows 11 家庭中文版 23H2
HBuilderX类型: 正式
HBuilderX版本号: 4.64
手机系统: HarmonyOS NEXT
手机系统版本号: HarmonyOS NEXT Developer Beta2
手机厂商: 华为
手机机型: nova 13
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
制作uts插件时,调用isGaodeMapInstalled这个函数
制作uts插件时,调用isGaodeMapInstalled这个函数
预期结果:
安装了高德地图就返回true,反之返回false
安装了高德地图就返回true,反之返回false
实际结果:
报错[number] 0 testTag canOpenLink failed: %{public}s BusinessError 17700056: The scheme of the specified link is not in the querySchemes.
报错[number] 0 testTag canOpenLink failed: %{public}s BusinessError 17700056: The scheme of the specified link is not in the querySchemes.

DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信
如之前沟通,你测试下我给的工程和你的做对比,找一下差异。也核对相关文档看是否有区别。使用canOpenLink判断应用是否可访问
忆往昔 (作者)
感谢大佬,问题已解决。
2025-05-13 16:36
忆往昔 (作者)
需要在项目下的harmony-configs/entry/src/main/module.json5文件里加上"querySchemes": ["amapuri"],清除缓存重新运行
2025-05-13 16:38