继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

HarmonyOS通过openLink拉起浏览器打开链接

2025-11-05 15:05:48179浏览

老卫

2实战 · 252手记 · 2推荐
TA的实战

本文介绍了在HarmonyOS应用开发过程中,如何使用openLink拉起浏览器来打开链接。

App Linking Kit简介

HarmonyOS的App Linking Kit(应用链接服务)提供了一系列增强的链接特性。App Linking Kit支持通过基础链接拉起指定应用,实现应用间跳转。当应用已安装时,优先通过应用展示内容;若应用未安装,则通过系统浏览器展示网页版内容。

使用App Linking进行跳转时,系统会根据接口传入的uri信息(HTTPS链接)将用户引导至目标应用中的特定内容,无论应用是否已安装,用户都可以访问到链接对应的内容,跳转体验相比Deep Linking方式更加顺畅。

拉起方应用跳转实现

拉起方应用通过UIAbilityContext.openLink()接口,传入目标应用的链接,拉起目标应用。

openLink接口提供了两种拉起目标应用的方式,开发者可根据业务需求进行选择。

方式一: 仅以App Linking的方式打开应用。

将appLinkingOnly参数设为true,若有App Linking匹配的应用,则直接打开目标应用。若无App Linking匹配的应用,则抛异常给开发者进行处理。

适用于无法打开目标应用时,开发者做了相应的异常处理。例如:拉起方应用集成了ArkWeb,当目标应用不存在时,可通过ArkWeb打开链接。

方式二: 以App Linking优先的方式打开应用。

将appLinkingOnly参数设为false或者不传,若有App Linking匹配的应用,则直接打开目标应用。若无App Linking匹配的应用,则尝试以浏览器打开链接的方式打开应用。

适用于无法打开目标应用时,开发者未做任何处理。此时目标应用不存在时,会通过系统浏览器打开链接。

代码示例

本文主要验证上述方式二,核心代码逻辑如下。

// 获取上下文
let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
let link: string = this.url;
let openLinkOptions: OpenLinkOptions = {
  // 将appLinkingOnly参数设为false或者不传,
  // 若有App Linking匹配的应用,则直接打开目标应用。
  // 若无App Linking匹配的应用,则尝试以浏览器打开链接的方式打开应用
  appLinkingOnly: false,
  parameters: {}
};

try {
  context.openLink(
    link,
    openLinkOptions,
    (err, result) => {
      hilog.error(DOMAIN, TAG, `openLink callback error.code: ${JSON.stringify(err)}`);
      hilog.info(DOMAIN, TAG, `openLink callback result: ${JSON.stringify(result.resultCode)}`);
      hilog.info(DOMAIN, TAG, `openLink callback result data: ${JSON.stringify(result.want)}`);
    }
  ).then(() => {
    hilog.info(DOMAIN, TAG, `open link success.`);
  }).catch((err: BusinessError) => {
    hilog.error(DOMAIN, TAG, `open link failed, errCode ${JSON.stringify(err.code)}`);
  });
} catch (e) {
  hilog.error(DOMAIN, TAG, `exception occured, errCode ${JSON.stringify(e.code)}`);
}

运行应用,界面效果如下。

点击应用“访问链接”,可以看到拉起了浏览器,界面效果如下。

在浏览器里面访问被访问的应用,界面效果如下。

完整示例详见文末链接《跟老卫学仓颉编程语言开发》中“ArkTSOpenLink”。

参考引用

加入鸿蒙生态,共建万物互联。以下是鸿蒙应用开发常用教程。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP