您可以使用
Android intent。您可以实现用户手势,以便使用
自定义架构,也可以使用 intent:
语法。
构建 intent 锚并将其嵌入页面中,以便用户可以选择 启动应用这样可以灵活选择应用的发布方式和发布时间, 也就是说,您可以使用 Intent Extras 将信息传递给应用。
基于 intent 的 URI 的基本语法如下:
intent:
HOST/URI-path // Optional host
#Intent;
package=\[string\];
action=\[string\];
category=\[string\];
component=\[string\];
scheme=\[string\];
end;
如需了解解析详情,请参阅 Android 源代码。
当 intent 无法解析或外部应用无法启动时, 用户就可以重定向到后备网址你可以指定一个后备网址 包含 Intent extra:
S.browser_fallback_url=[encoded_full_url]
使用 S.<name>
定义 intent Extra。这个额外的 extra
向后兼容性Chrome 移除了 browser_fallback_url
,
目标应用不会看到此值。
Chrome 在下列情况下不会启动外部应用:
- 无法解析意图。换言之,没有应用程序可以处理该 intent。
- JavaScript 计时器尝试在无用户手势的情况下打开应用。
示例
以下是启动 Zxing 条形码扫描器应用的 intent:
intent:
//scan/
#Intent;
package=com.google.zxing.client.android;
scheme=zxing;
end;
如需启动 Zxing 条形码扫描器应用,请在锚点上对 href
进行编码:
<a href="intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;end">
Take a QR code
</a>
请参阅 Android Zxing 清单,其中定义了软件包和主机。
在指定后备网址后,完整网址如下所示:
<a href="intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;S.browser_fallback_url=http%3A%2F%2Fzxing.org;end">
Take a QR code
</a>
现在,如果找不到应用,该网址会将用户转到 zxing.org
,链接为
由 JavaScript(无需用户手势)触发,或由我们
启动外部应用
注意事项
如果您使用包含 Extras 的 intent 调用 Android Activity, 也可以添加这些详细信息
仅限具有类别过滤器 android.intent.category.BROWSABLE 的 activity 因为这表明应用是安全的 。
在以下情况下,Chrome 不会针对给定的 intent URI 启动外部应用:
- Intent URI 是从用户输入的网址中进行重定向;
- Intent URI 无需用户手势即可启动。