HarmonyOS 鸿蒙Next H5页面无法通过href唤起App
HarmonyOS 鸿蒙Next H5页面无法通过href唤起App H5页面上无法通过href方式唤起App,必须通过手动点击页面才可以
openUrl() {
window.location.href = this.url;
setTimeout(() => {
window.location.href = 'store://appgallery.huawei.com/app/detail?id=com.ppdai.loan.hm';
}, 3000)
}
老师这个是正常的做需求增加的功能,网页跳转App支持管控,目前浏览器接收到deeplink想要拉起三方应用就会弹出弹窗,点击后跳转
老师我们现在验证是,会出现弹窗,点击后,如果没有安装,跳转去应用市场,安装了跳转应用。您说的俩次拉起是什么意思呢。
import { webview } from '@kit.ArkWeb';
import { common, OpenLinkOptions } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
@Entry
@Component
struct Index {
@State info: string = '-';
context: common.UIAbilityContext = this.getContext(this) as common.UIAbilityContext;
controller = new webview.WebviewController();
build() {
Column({ space: 10 }) {
Web({
src: $rawfile('index.html'),
controller: this.controller
})
.height(200)
.zoomAccess(false)
.onLoadIntercept((event) => {
const url: string = event.data.getRequestUrl();
if (url === 'third-party://pages/toThirdApp/appgallery') {
const link: string = "https://www.xiaohongshu.com/user/profile/613881f500000000020205fc?xhsshare=CopyLink&appuid=613881f500000000020205fc&apptime=1690268402";
const openLinkOptions: OpenLinkOptions = {
appLinkingOnly: false,
parameters: {
name: 'test'
}
};
this.context.openLink(link, openLinkOptions).then(() => {
this.info = link + ', return message: link success.';
}).catch((err: BusinessError) => {
console.error(`open link failed. Code is ${err.code}, message is ${err.message}`);
})
}
// 返回true表示阻止此次加载,否则允许此次加载
return false;
})
Text(`目标应用URL: ${this.info}`)
.fontSize(15)
.width('90%')
}
.height('100%')
.width('100%')
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<a href="third-party://pages/toThirdApp/appgallery">拉起</a>
<br>
</body>
</html>
老师可以参考这个,如果安装他会直接跳转应用,未安装他会跳到应用市场详情页
老师您方便抽一个可复现的demo,我们这里看下嘛,因为我们这里测试是可以的
更多关于HarmonyOS 鸿蒙Next H5页面无法通过href唤起App的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
针对“HarmonyOS 鸿蒙Next H5页面无法通过href唤起App”的问题,可能的原因及解决方案如下:
在HarmonyOS中,H5页面通过href唤起App通常依赖于URL Scheme或Universal Links等机制。若无法成功唤起,可能原因包括:
-
URL Scheme配置错误:请检查App的URL Scheme是否正确配置在manifest文件中,并确保与H5页面中href使用的Scheme完全一致。
-
Intent Filter缺失:App的manifest文件中可能缺少对应的Intent Filter配置,导致系统无法识别并匹配到该URL Scheme。
-
H5页面问题:H5页面中的href可能存在拼写错误或格式问题,导致无法正确解析并触发唤起App的动作。
-
系统权限或策略限制:部分HarmonyOS设备或版本可能对URL Scheme唤起App有限制,或需用户授权才能唤起。
-
浏览器兼容性:不同浏览器对URL Scheme的处理可能存在差异,请确保测试环境与实际用户环境一致。
请检查上述可能原因,并逐一排查。若问题依旧无法解决,请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。