【效果】

元服务链接格式(API>=12适用):https://hoas.drcn.agconnect.link/ggMRM

生成二维码后效果:

【参考网址】

使用App Linking实现元服务跳转:https://developer.huawei.com/consumer/cn/doc/AppGallery-connect-Guides/agc-applinking-atomic-link-0000002046440041

草料二维码:https://cli.im/

【引言】

本文将详细介绍如何使用App Linking技术实现元服务之间的无缝跳转,并通过生成二维码的方式快速拉起元服务,从而简化用户操作流程,增强应用的互动性和推广效率。

【什么是元服务链接?】

元服务链接是一种专为开发者设计的受控URL服务,允许用户点击后直接进入特定的元服务内容页。这种即点即享的功能极大地简化了用户的操作流程,并且可以精准控制用户访问的时间范围。对于已上架的元服务,开发者能够为其生成并配置专属链接,同时设置有效期,以确保用户在有效期内能够访问到最新的内容或功能。

【使用场景】

• 扫码直达:用户可以通过扫描二维码直接进入特定的元服务页面。

• 社交分享:方便用户通过社交媒体分享特定的服务内容。

• 唤醒沉默用户:通过推送通知中的链接快速激活不活跃的用户。

• 营销推广:作为广告内容的一部分,引导用户进入体验服务,提高转化率。

【创建元服务链接】

要创建一个元服务链接,首先需要满足以下前提条件:

1. 在AGC(AppGallery Connect)平台上创建项目。

2. 开通App Linking服务。

3. 项目中存在已上架且支持HarmonyOS API 12及以上的元服务。

接下来,按照以下步骤创建链接:

1. 登录AppGallery Connect,选择“我的项目”。

2. 选择项目后,在左侧导航栏找到“增长 > App Linking”,选择“元服务链接(API>=12适用)”页签。

3. 点击“创建”,填写链接名称、设置链接的有效期等信息。

4. 可以选择添加自定义参数,以便更精确地定位到元服务中的指定页面。

5. 最后,保存或发布链接。

【自定义参数】

为了更灵活地控制跳转行为,开发者可以在创建元服务链接时设置自定义参数。这些参数通常用于指定页面路径或是导航目标。例如,可以通过pagePath参数指定具体的页面路径,或者使用navRouterName参数指向特定的导航目的地。如果涉及分包,则还需要提供subPackageName参数。

【应用内集成】

在应用内部,开发者可以使用UIAbilityContext.openLink接口来打开元服务链接。根据设置的不同,如果匹配到相应的元服务则会直接打开;否则,可能会抛出异常或者尝试通过浏览器打开链接。此外,还可以设置appLinkingOnly参数来控制是否仅限于通过App Linking打开元服务。

// 示例代码
import { common } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit'; let context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext;
let link: string = "https://hoas.drcn.agconnect.link/9P7g";
context.openLink(link, { appLinkingOnly: true })
.then(() => {
console.info('openlink success.');
})
.catch((error: BusinessError) => {
console.error(`openlink failed. error:${JSON.stringify(error)}`);
});

【错误处理与调试】

当元服务链接过期或无效时,系统会给出相应的错误提示。开发者可以根据这些提示来进行错误处理。例如,当appLinkingOnly设为true时,如果遇到非法或失效链接,系统会抛出错误码"16000019"。在这种情况下,开发者应当准备好相应的错误处理逻辑,以保证良好的用户体验。

【二维码生成】

最后一步,开发者可以使用草料二维码工具将生成的元服务链接转换成二维码,方便用户通过扫描二维码的方式访问元服务。这不仅提升了用户体验,也增加了应用的互动性和传播性。

【结论】

通过以上步骤,开发者可以轻松地利用App Linking技术实现鸿蒙元服务之间的无缝跳转,并通过二维码方式快速拉起元服务。这项技术不仅有助于简化用户操作,还能增强应用的互动性和推广效果。希望本文能帮助开发者更好地理解和运用这一强大功能,为用户提供更加流畅便捷的服务体验。

鸿蒙NEXT元服务:利用App Linking实现无缝跳转与二维码拉起的更多相关文章

  1. 官网app下载更换成微信公众号二维码 测试

    微信现在很火啊.公司官网原先提供的ios和andriod的app下载链接要求切换成微信公众号二维码.简单的替换,大家都说不需要测试直接上线.还是测了下. 1 验证所有与下载相关的信息都已去除. 包括下 ...

  2. 随手记一次利用开源zxing生成带嵌入logo的二维码图片

    之前就在项目里面用过zxing生成二维码,最近另一个项目同样需要用到二维码,故重新在学了学利用zxing生成二维码 接下来先做准备工作了,因为我是用vs2013上开发的,故选择了.net4.5版本的z ...

  3. Canvas与Image互相转换示例以及利用该技术实现微信长按自动识别二维码功能

    现在扫描二维码已经很普遍,微信扫一扫即可,但是如果二维码是在自己的手机上呢?那就要用到微信里的一个功能了,手指长按二维码,会弹出自动识别的选项,点确定就可以看到二维码的内容了.那么怎么通过前端实现这个 ...

  4. 利用websocket实现微信二维码码扫码支付

    由于业务需要引入微信扫码支付,故利用websocket来实现消息推送技术. 实现大致流程:首先客户端点击微信支付按钮,触发微信支付接口,同时微信支付响应成功参数后,连接websocket客户端,此刻利 ...

  5. 基于日志服务的GrowthHacking(1):数据埋点和采集(APP、Web、邮件、短信、二维码埋点技术)

    数据质量决定运营分析的质量 在上文中,我们介绍了GrowthHacking的整体架构,其中数据采集是整个数据分析的基础,只有有了数据,才能进行有价值的分析:只有高质量的数据,才能驱动高质量的运营分析. ...

  6. 今天网站后台登录页面需要生成一个二维码,然后在手机app上扫描这个二维码,实现网站登录的效果及其解决方案如下

    要实现二维码登录,需要解决2个技术,1.需要js websocket 与后台php实现长连接技术 2.实现二维码生成技术 要实现这个功能第二个算是比较简单,只需要下载一个php的二维码生成器即可,但要 ...

  7. 制作IOS企业版App网页扫描二维码下载安装

    有时候我们需要在XX网站的主页上去扫描二维码下载,那么ios开发中如何做到这一点呢. 我给大家解答一下,这也是在最近工作中用到的部分,在网上了解了一些. 下面给大家分解一下步骤: 1.Plist 和 ...

  8. 好推二维码如何通过应用宝微下载支持微信自动打开APP下载?

    好推二维码 官网 http://www.hotapp.cn 1. 为什么使用应用宝微下载? APP下载二维码,通过微信扫描下载的时候,微信目前只支持应用宝微下载,才能在微信里直接打开下载,否则就需要在 ...

  9. 为什么下载APP,扫描二维码,关注微信公众号,就会送牛奶送小礼品?下载使用量高,会怎样?

    以前的老办法是到处贴广告,电视上,广播上各种宣传. 在互联网时代,企业要盈利,除了不断优化升级自己的产品和服务,大量推广宣传产品,还要懂得用户思维.现在有网站,有APP,有微信,有二维码,可以卖产品, ...

  10. 网页二维码推广App的实现

    移动互联网时代,一个APP的平均推广成本早已经超过了10块.而推广通常分二类: 1.已经下载过的用户,可以直接打开应用(一般人的手机上安装的应用都非常多,要快速找到某个应用是很困难的事情,而且Andr ...

随机推荐

  1. Python 潮流周刊#68:2023 年 Python 开发者调查结果(摘要)

    本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...

  2. 国内加速拉取docker镜像的几种方法

    参考首页 快捷命令,使用本站代理拉取镜像,并修改回原始镜像名,在删除代理镜像名. 参考以下 docker cli 和 docker-compose.yml 修改镜像名后,继续一直使用本站代理服务未启动 ...

  3. 深入理解JavaScript中的箭头函数

    箭头函数可以使我们的代码更加简洁,如下: var sum = (a,b) => a+b; JavaScript 充满了我们需要编写在其他地方执行的小函数的情况. 例如: arr.forEach( ...

  4. PicGo RequestError: Error: tunneling socket could not be established, cause=connect ECONNREFUSED 127.0.0.1:36677

    PicGo RequestError: Error: tunneling socket could not be established, cause=connect ECONNREFUSED 127 ...

  5. CSS – initial, Inherit, unset, revert

    参考 Understanding the "Initial", "Inherit" and "Unset" CSS Keywords [译] ...

  6. 【赵渝强老师】什么是Spark SQL?

    一.Spark SQL简介 Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用. 为什么要学习Spark SQL? ...

  7. USB总线-Linux内核USB3.0主机控制器驱动初始化流程分析(十三)

    1.概述 RK3588有2个USB3.0 DRD控制器,2个USB2.0 Host控制器.USB3.0 DRD控制器既可以做Host,也可以做Device,向下兼容USB2.0和USB1.0.USB3 ...

  8. /proc/pids/status

    /proc/279/status是一个Linux内核中的文件,其中包含了当前进程的状态信息.每行的含义如下: Name: 进程的名称,例如"java"或"bash&quo ...

  9. torch和numpy的相互转换

    import torch x = torch.rand(2,2) x1 = x.numpy() # torch转换到numpy x2 = torch.from_numpy(x1) #numpy转换to ...

  10. 我在大厂做 CR——为什么建议使用枚举来替换布尔值

    使用枚举替换布尔值主要基于以下几个原因 ● 可读性 ● 可拓展性 ● 安全防控 可读性 我们会定义 boolean 类型(true 或 false)作为方法参数,虽然比较简洁,但有时候参数的含义往往不 ...