文档管理中心
FAQS技术uniapp框架适配ASCF元服务后,服务直达卡片无法跳转至指定页面

uniapp框架适配ASCF元服务后,服务直达卡片无法跳转至指定页面

问题现象

在uniapp框架适配ASCF元服务后,出现服务直达卡片跳转异常:同一账户下的所有元服务,其“服务直达”卡片被点击后,均未能跳转至预设的目标页面,而是统一跳转到了应用首页。

背景知识

服务直达:为了更好地帮助商家在元服务阵地做好经营和生态,元服务构建了服务项直达、商品直达、门店直达等一系列场景,帮助商家在HarmonyOS公域流量场进行分发和引流。

want参数解析:want参数是应用组件间通信的核心载体对象,作用为启动目标应用/元服务并传递信息。

问题定位

根据服务卡片规范中的定义,服务直达卡片的跳转链接需采用JSON字符串格式,其内容对应于want对象的parameters参数。

关键点分析:

  1. 格式要求:链接不是一个普通的URL,而是一个JSON字符串。例如:{"key": "value"}。
  2. 作用:这个JSON字符串在元服务被openAtomicService拉起时,会作为want对象的parameters属性传递给元服务。

问题分析:“点击卡片跳转到首页而非指定页面”的问题,就是由于这个JSON字符串的格式不正确或内容未能被正确解析导致的。

  1. 格式错误:JSON语法错误,如缺少引号、括号不匹配等。
  2. 内容缺失:JSON中缺少元服务用于识别目标页面的关键参数(例如,特定的page参数)。

分析结论

经检查,问题源于服务直达链接的JSON结构不正确。现有配置{"path": "pages/index/sample"}未能被正确解析,原因在于该路径参数必须封装在ascfPara对象内。正确的格式应为{"ascfPara": {"path": "pages/index/sample"}}。

修改建议

打开uniapp项目根目录下的pages.json,找到pages中的配置,找到目标跳转页面的path项,例如目标跳转页面的"path": "pages/index/sample"。则AGC的服务直达页面中的直达链接为{"ascfPara": {"path": "pages/index/sample"}}。

请按以下步骤检查并配置服务直达卡片的跳转链接:

  1. 定位页面路径:在uniapp项目根目录的pages.json文件中,在pages节点下找到希望跳转的目标页面,并确认其path属性。例如:"path": "pages/index/sample"。
  2. 配置跳转参数:在服务直达配置界面中,跳转链接应设置为一个特定的JSON字符串。该JSON字符串必须以{"ascfPara": {"path": "这里填写在步骤1中找到的页面路径"}}的格式进行配置。

根据上面的例子,完整的跳转链接应设置为{"ascfPara": {"path": "pages/index/sample"}}。

在 FAQ 中进行搜索
请输入您想要搜索的关键词