如何为应用深度链接创建超链接文本

How to create hyperlink text for app deeplinking

本文关键字:创建 超链接 文本 链接 深度 应用      更新时间:2023-09-26

>实际要求

  • 点击分享按钮
  • 生成文本/网址/链接
  • 通过WhatsApp/FB/Twitter/Email等与其他用户分享。
  • 单击此链接时,将打开"我的应用",其中包含链接中传递的数据。
  • 类似于YouTube链接,例如:https://youtu.be/g5MIJ3Us10k


到目前为止,正在做什么...

我有一个字符串形式的深层链接 URL。
当我在浏览器上将其作为超链接访问并且我的应用程序正确打开时,它运行良好。
我需要将此 URL 字符串创建为超链接,可以从应用程序本身在其他应用程序之间共享。

使用以下代码生成共享链接

Intent shareIntent = new Intent(Intent.ACTION_SEND);
        shareIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
        shareIntent.setType("text/plain");
        shareIntent.putExtra(Intent.EXTRA_SUBJECT, "MyAPPLink");
        shareIntent.putExtra(Intent.EXTRA_TEXT, url); //String deeplink url
        return shareIntent;

我可以将文本共享到其他应用程序,但它不是链接而是纯文本。
如何使其成为超链接,以便当用户将其共享到其他应用程序时,其他用户可以单击该链接并打开该应用程序并在链接中传递数据?

更新
以下是深度链接网址格式
url = 意图://#Intent;方案=;p ackage=;S.browser_fallback_url=;结束;

更新 2
我创建了一个指向我网站的链接,并附加了我的深度链接数据
喜欢 http://example.com/deeplink?id=1234567

我已经上传了一个没有 UI 的 HTML 文件,使用 JS 我可以在脚本中获取我的 ID。
现在,当脚本运行时,我的应用程序不会启动,而是转移到回退 URL。

如果我在 HTML 中放置一个按钮并单击该按钮,我运行脚本,我的应用程序将启动。

如何从生成的共享文本启动我的应用程序???

我想

我已经解决了。它现在在我的设备上工作,默认使用 chrome 浏览器。需要用其他组合进行测试。

问题出在 JS 上。我把我的重定向调用放在setTimeout()中,它起作用了。

这是逻辑流程

  • 在清单中使用方案、查看操作和可浏览+默认类别创建意图过滤器
  • 创建共享意向并将额外文本设置为 http://example.com/deeplink?id=12345
  • 创建一个空的 HTML 文件并使用 JS,获取查询并提取"id"
  • 现在使用 setTimeout(),调用重定向深层链接 URL --> intent://#Intent;scheme=;p ackage=;S.browser_fallback_url=;结束;
  • 在向深层链接公开的活动中,从意图中获取数据字符串,并通过深层链接获取 ID

我希望这对其他人有所帮助:)