当前位置: 代码迷 >> Android >> 在同一应用程序中打开branch.io链接
  详细解决方案

在同一应用程序中打开branch.io链接

热度:21   发布时间:2023-08-04 10:28:17.0

我尝试在当前打开的应用程序中使用branch.io链接打开一个新活动。 以下代码有效。 这里的问题是浏览器已打开,这将调用新活动。

Intent actionIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://sample.test-app.link/foo"));
startActivity(actionIntent);

我知道浏览器会访问branch.io的网站,获取数据并调用其他链接,例如intent://.... 我正在寻找一种从Web链接( https )获取意图链接( intent:// )的方法。

谢谢!

解决方案是启用App links并在链接设置中添加SHA256指纹。

在您的应用中,您应该设置一个新的意图过滤器以获取http请求。

<intent-filter android:autoVerify="true">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="https" android:host="xxxx.test-app.link" />
</intent-filter>

现在您的应用程序接收并处理了链接,将不会打开浏览器。

这些步骤进行了描述。

Branch SDK的设计不便于从应用程序自己的Web视图路由回应用程序。 就是说,这听起来好像您已经做了一些工作,这真是太好了。

关于抓取从“分支”链接创建的Intent字符串的最简单方法:在安装了该应用的设备上,将“分支”链接粘贴到Chrome地址栏中,然后按Enter。 目的字符串将同时出现在地址栏中和出现在结果网页上的错误中。

这样可以检索意图字符串,因为Chrome不支持通过这样在地址栏中输入意图字符串来打开应用程序。

我认为您可以通过以下步骤来实现:

在活动意图过滤器下的清单文件中:

  <data android:host="example.com" android:scheme="http" ></data>

现在,您的可点击链接应该类似于:

在活动中,您可以纠正代码以根据URL进行任何条件

Uri data = getIntent().getData();
    if(data!=null) {
        List<String> params = data.getPathSegments();
        String first = params.get(0); // "status"
        String second = params.get(1);
    }
  相关解决方案