HarmonyOS 鸿蒙Next 浏览器页面跳app
HarmonyOS 鸿蒙Next 浏览器页面跳app
浏览器加载一个分享链接,这个链接页面有个按钮,点击可以跳转app,之前安卓用的scheml技术,现在鸿蒙使用什么技术唤起鸿蒙应用?
2 回复
<!DOCTYPE html>浏览器支持Deeplink链接的打开能力。应用想要响应Deeplink拉起,需要注册viewData action和scheme+host,这样才能匹配到。如果有多个应用注册了相同的scheme+host,就会拉起应用选择框,让用户选择某个应用。
Deeplink响应的声明,需要在module.json5文件的接收Ability中skills项中增加action和uris内容:
"skills": [
{
...
"actions": [
"ohos.want.action.viewData" // 声明Deeplink接收的Action,这个是固定的
...
],
"uris": [
{
"scheme": "store", // scheme尽量做到唯一 ,仅设置此协议头就可以跳转
"host": "test.xxx.com" // host不与其他应用相同,这样可以减少冲突
}
...
]
...
}
]
需要注意deeplink链接的scheme协议头必须网页拉起的链接的应用配置的保持一致。
另外浏览器不会对deeplink链接做任何解析或处理,只会原封不动的传递给拉起的应用。因此第三方应用只需要自己的网页端和应用端协商好url规则,自己去做解析打开对应页面即可。
webviewDeeplink拉起应用示例:
import web_webview from '@ohos.web.webview';
import { common, Want } from '@kit.AbilityKit';
@Entry
@Component
struct WebPage {
controller: web_webview.WebviewController = new web_webview.WebviewController()
build() {
Row() {
Column() {
Web({ src: $rawfile('local.html'), controller: this.controller })
.onLoadIntercept((event) => {
if (event) {
let url: string = event.data.getRequestUrl();
console.log(url)
// 判断链接是否为拨号链接
if (url.indexOf('store://') === 0) {
// 跳转拨号界面
const want: Want = {
uri: 'store:xxxx'
}
const context = getContext(this) as common.UIAbilityContext;
context.startAbility(want).then(() => {
//拉起成功
}).catch(() => {
})
return true;
}
}
return false;
})
.domStorageAccess(true)
}
.width('100%')
}
.height('100%')
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试页面</title>
<script>
function goToLink() {
window.open('store://xxxx')
}
</script>
</head>
<body>
<div align="center">
<button type="button" id="btn_navi" onclick="goToLink()">跳转应用市场</button>
</div>
</body>
</html>
更多关于HarmonyOS 鸿蒙Next 浏览器页面跳app的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next系统中,实现浏览器页面跳转到App的功能,主要依赖于系统提供的URL Scheme机制或Intent机制(根据鸿蒙的具体API设计,这里不直接涉及Java或C语言实现细节)。
-
URL Scheme机制:
- 首先,需要在目标App中定义一个自定义的URL Scheme。
- 然后,在浏览器页面中,通过构造包含该URL Scheme的链接并触发点击事件,即可实现页面向App的跳转。
- 鸿蒙系统会根据URL Scheme查找并启动相应的App。
-
Intent机制(如果鸿蒙系统支持类似Android的Intent概念):
- 目标App需要声明可接收的Intent Filter。
- 浏览器页面通过某种方式(可能是系统提供的API或第三方库)构造并发送一个Intent。
- 鸿蒙系统会解析Intent,并根据Filter匹配到目标App,从而启动它。
注意,实现这一功能需要确保目标App已安装且URL Scheme或Intent Filter正确配置。同时,由于不同版本的鸿蒙系统可能存在API差异,开发者需参考最新的鸿蒙开发文档进行实现。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html