如何为app deeplinking创建超链接文本

时间:2016-03-21 18:04:34

标签: javascript android android-intent deep-linking android-sharing

实际要求

  • 点击分享按钮
  • 生成文字/网址/链接
  • 通过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;

我可以将文字分享给其他应用,但它不是纯文字链接 如何将其设为超链接,以便当用户将其分享到其他应用时,其他用户可以单击该链接并打开应用并在链接中传递数据?

更新
以下是deeplink url格式
url = intent://#Intent; scheme =; package =; S.browser_fallback_url =; end;

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

我上传了一个没有UI的HTML文件并使用了JS我可以在脚本中获取我的ID 现在,当脚本运行时,我的应用程序没有启动,而是转移到后备网址。

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

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

1 个答案:

答案 0 :(得分:0)

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

问题在于JS。我将重定向调用放在setTimeout()中,然后就可以了。

这是逻辑流程

  • 在清单
  • 中使用scheme,view action和browsable + default类别创建一个intent过滤器
  • 创建共享意图和setExtra文本为http://example.com/deeplink?id=12345
  • 创建一个空的HTML文件并使用JS,获取查询并提取" id"
  • 现在使用setTimeout(),调用重定向深层链接网址 - >意图://#意图;方案=;包=; S.browser_fallback_url =; END;
  • 在暴露给deeplink的Activity中,从intent获取dataString并提取deeplink传递的ID

我希望这有助于其他人:)