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

时间:2017-02-13 12:18:48

标签: android android-intent branch.io

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

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

我知道浏览器访问branch.io的网站,获取数据并调用intent://....之类的其他链接。我正在搜索从网络链接(intent://)获取意图链接(https)的方法。

谢谢!

3 个答案:

答案 0 :(得分:1)

解决方案是启用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>

现在,您的应用会收到并处理链接,浏览器将无法打开。

步骤描述为in the docs

答案 1 :(得分:1)

Branch SDK的目的不是为了方便从应用程序自己的网页浏览回到应用程序。也就是说,听起来你已经有了一些工作,这太棒了。

关于获取从分支链接创建的Intent字符串的最简单方法:在安装了应用的设备上,将Branch链接粘贴到Chrome地址栏并按Enter键。意图字符串将出现在地址栏和将出现在结果网页上的错误中。

以这种方式检索意图字符串是有效的,因为Chrome不支持通过在地址栏中输入意图字符串来打开应用程序。

答案 2 :(得分:0)

我认为你可以通过以下步骤实现它:

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

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

现在您的可点击链接应该是:

http://example.com/tutor/

在活动中,您可以使代码根据网址

制作任何条件
 chart.xAxis[0].removePlotLine('plot-line-1');

 chart.xAxis[0].addPlotLine({
        ....
        id: 'plot-line-1'
    });