外部打开使用指导
不可见组件:让 App 接收别的 App 分享来的内容,以及被链接直接打开。
- 接收分享:放上本组件,App 就会出现在系统分享菜单里。用户在相册、浏览器、微信等处点「分享」选中本 App,
文字触发收到分享文字时(文本)(
GotSharedText),图片触发收到分享图片时(路径)(GotSharedImage)。 与信息分享器方向相反:信息分享器是把内容分享出去,本组件是接收进来。 - 链接打开(深度链接):设置链接前缀(
LinkScheme),例如myshop, 用户点击网页、短信、二维码里的myshop://goods?id=5这类链接时会直接打开本 App, 并触发链接打开时(URL网址)(LinkOpened),用取链接参数(URL网址,名称)(GetQueryParameter)读出参数。
本组件请放在 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 源码与操作指导
本页链接参数解析可直接在伴侣运行;系统分享和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,或用你设备支持的调试工具测试;本页不冒充已经完成系统唤起实测。
扫码添加客服咨询