HarmonyOS 鸿蒙Next的H5导流页,在Webview上运行,用户没安装APP,怎么跳转应用市场下载
HarmonyOS 鸿蒙Next的H5导流页,在Webview上运行,用户没安装APP,怎么跳转应用市场下载 【设备信息】Mate60
【API版本】Api13
【DevEco Studio版本】5.0.7.200
【问题描述】
H5的导流页,在Webview上运行,用户没安装APP,怎么跳转应用市场下载?
2 回复
用h5打开应用市场可以参考以下demo:
// H5页面:
go_to_agc_unipay.html:
<!-- index.html -->
<!DOCTYPE html>
<html>
<body>
<button type="button" onclick="callArkTS()">Click Me!</button>
<p id="demo"></p>
<script>
function callArkTS() { let str = naviApp.jumpAgcDetailPage(); }
</script>
</body>
</html>
//WebPage页面
import web_webview from '@ohos.web.webview';
import { common, Want } from '@kit.AbilityKit';
class NaviAppStore {
constructor() {}
jumpAgcDetailPage() {
const want: Want = {
uri: `store://appgallery.huawei.com/app/detail?id=xxx` //跳转拉起应用市场 农行APP的下载页面
//uri: `store://appgallery.huawei.com/` //跳转拉起应用市场APP首页
}
const context = getContext(this) as common.UIAbilityContext;
context.startAbility(want).then(() => {
console.log('jumpAgcDetailPage 拉起成功 农行APP的下载页面');
}).catch(() => {
console.log('jumpAgcDetailPage 拉起失败');
})
}
}
// 组件:
@Entry
@Component
struct WebPage {
controller: web_webview.WebviewController = new web_webview.WebviewController()
@State naviApp:NaviAppStore = new NaviAppStore()
build() {
Row() {
Column() {
Web({ src: $rawfile("go_to_agc_unipay.html"), controller: this.controller })
.javaScriptProxy({ object: this.naviApp, name: "naviApp", methodList: ["jumpAgcDetailPage"], controller: this.controller })
}
.width('100%')
}
.height('100%')
}
}
更多关于HarmonyOS 鸿蒙Next的H5导流页,在Webview上运行,用户没安装APP,怎么跳转应用市场下载的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,如果用户在Webview上访问H5导流页且未安装APP,可以通过以下步骤实现跳转应用市场下载:
-
检测APP安装状态:使用鸿蒙提供的
Ability
或BundleManager
接口,检测设备上是否已安装目标APP。如果未安装,执行下一步。 -
生成应用市场链接:根据应用在华为应用市场的唯一标识(如包名),生成对应的下载链接。
-
跳转应用市场:使用
Intent
或Uri
对象,通过startAbility
或startService
方法,启动应用市场并导航到目标APP的下载页面。
示例代码:
let intent = {
action: "android.intent.action.VIEW",
uri: "market://details?id=com.example.app"
};
featureAbility.startAbility(intent);