外部打开使用指导

← 返回外部打开组件参考 · 全部使用指导

外部打开使用指导

不可见组件:让 App 接收别的 App 分享来的内容,以及被链接直接打开。

本组件请放在 Screen1 上:分享和链接都会打开 App 的首屏。

快速上手

放一个外部打开、一个标签、一个图像,链接前缀填 myshop:

各案例独立使用;组合到同一屏幕时,将同名事件的处理合并到一个事件积木中。

when 外部打开1.GotSharedText(文本) {
  标签1.Text = join("收到分享:", 文本)
}

when 外部打开1.GotSharedImage(路径) {
  图像1.Picture = 路径
}

when 外部打开1.LinkOpened(URL网址) {
  标签1.Text = join("打开商品:", 外部打开1.GetQueryParameter(URL网址, "id"))
}

测试分享:在相册里选一张图 → 分享 → 选本 App(用伴侣调试时选「AI伴侣」)。 测试链接:编译安装后,在手机浏览器地址栏或备忘录里点 myshop://goods?id=5。

搭建与测试

在设计器拖入本组件和案例涉及的按钮、标签、布局等组件,按案例中的名称重命名。先运行最小案例,确认事件返回,再增加业务逻辑。示例中的素材先上传到项目,服务器地址、令牌、文件路径换成自己的值。

可见组件需要有非零宽高;不可见工具组件必须由属性或方法启动。设计器展示样式不等于运行时已加载数据或绑定目标。联机测试应使用包含本组件的 AI 伴侣;涉及系统入口或权限的行为还要编译安装后验证。

案例:按链接参数显示内容

把 LinkScheme 设为 myshop,放到 Screen1;编译安装后从外部打开 myshop://goods?id=5。

when 外部打开1.LinkOpened(URL网址) {
  var 编号 = 外部打开1.GetQueryParameter(URL网址, "id")
  if 编号 == "" {
    标签1.Text = "链接缺少商品编号"
  } else {
    标签1.Text = join("商品编号:", 编号)
  }
}

链接前缀参与安装包的入口配置,修改后应重新打包安装;伴侣不是自己的安装包,不能用它证明自定义链接注册成功。

属性、方法与事件速查

完整参数类型、默认值和平台说明见组件参考。下表按调用入口列出用途;有完成事件的方法在事件中读取结果。

入口 用途
链接前缀(LinkScheme) 链接前缀,只能用字母、数字和 + - . 且字母开头,例如 myshop。设置后,点击 myshop://任意内容 的链接会打开本 App 并触发「链接打开时」。写进安装包清单,编译后才生效(伴侣里无效)。
取链接参数(URL网址,名称)(GetQueryParameter) 从链接里取参数值,例如 myshop://goods?id=5 取 id 得到 5;没有该参数返回空文本。
收到分享图片时(路径)(GotSharedImage) 别的 App 分享图片到本 App 时触发,path 为已复制到本 App 专属目录的图片路径,可直接设给图像组件显示或上传。
收到分享文字时(文本)(GotSharedText) 别的 App 分享文字(或网页链接)到本 App 时触发。
链接打开时(URL网址)(LinkOpened) 通过「链接前缀」开头的链接打开本 App 时触发,url 为完整链接,用「取链接参数」读出其中的参数。

常见问题与验收

检查项 操作与预期
初始化 对照案例检查是否已经调用加载、注册、连接或显示方法;仅拖入组件不会替你执行这些步骤。
结果返回 将成功事件和失败事件都接到标签,记录事件参数;异步操作完成前不读取结果属性。
输入配置 检查素材名大小写、网址是否为直接资源地址、文件是否存在、编号和索引是否在范围内。
平台与权限 按组件参考中的平台说明测试;授权被拒绝时应有明确提示,不继续假定操作成功。
最小案例 先验证页面中的最小案例,再验证第二个场景;重复操作、取消、返回屏幕后结果应符合事件说明。

完整 .aia 源码与操作指导

下载 .aia 源码

本页链接参数解析可直接在伴侣运行;系统分享和scheme唤起请编译独立安装包,安装后测试。鸿蒙需要配置自己的签名。设计器scheme为componentcase,运行时修改不改变已经安装的系统注册入口。

导入 ExternalOpenAllFeatures.aia,连接最新伴侣,或编译独立安装包。真机/伴侣运行尚未实测。

API / 功能 操作入口 预期结果
LinkScheme 设计器配置和读取/设置 初始化,或设置前缀 初始componentcase,运行时读写可见;修改系统注册必须重新编译
GetQueryParameter 默认链接、name参数点解析 得到“传感器”;id得到42,不存在参数返回空文本
GotSharedText 独立安装后从其他应用分享文字,选择本案例 接收到真实文字并计数,不用按钮伪造事件
GotSharedImage 从相册分享实际图片,选择本案例 显示实际图片路径并载入,失败在底部显示
LinkOpened 系统打开componentcase链接,或安卓adb命令 显示完整链接及解码id/name;伴侣不注册本工程专属scheme

所有返回值均用于界面反馈,错误由底部错误区展示。设计器采用明确非默认配置,初始化与界面同步。API 覆盖检查按最终 AIA 检查方法、事件、属性读取与设置及设计器配置,不能替代真实设备验证。

外部打开

导入方法:项目 → 导入项目(.aia)→ 选择下载的 .aia 源码文件。 本页链接参数解析可直接在伴侣运行;系统分享和scheme唤起请编译独立安装包,安装后测试。鸿蒙需要配置自己的签名。设计器scheme为componentcase,运行时修改不改变已经安装的系统注册入口。 覆盖检查 7/7。首次载入及保存重开均0个错误,真实后台导入、安装包编译通过;真机/伴侣/硬件联调尚未实测。全部属性读写、方法与事件的操作入口和预期结果见组件指导。

安卓独立包链接唤起

安装由此工程编译的 APK,并连接已授权 USB 调试的安卓设备,执行:

adb shell am start -a android.intent.action.VIEW -d 'componentcase://device?id=42&name=%E4%BC%A0%E6%84%9F%E5%99%A8'

应由系统打开案例,事件区显示id 42、name 传感器。如果系统没有找到处理应用,请确认安装的是此案例独立包、设计器链接前缀为 componentcase,且重新编译安装。此命令尚未在实际设备执行。鸿蒙请通过能发起自定义scheme链接的实际应用打开同一URI,或用你设备支持的调试工具测试;本页不冒充已经完成系统唤起实测。

文档反馈