2017-02-13 76 views
1

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

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

我知道浏览器访问branch.io的网站,获取数据,并呼吁像intent://....一个其他链接。我正在寻找一种方法从网络链接(https)获取意向链接(intent://)。

谢谢!

回答

1

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

在你的应用程序中,你应该设置一个新的intent过滤器来获取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

0

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

在manifest文件中下活动的意图过滤器放:

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

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

http://example.com/tutor/

在活动中,您可以对代码做出任何基于URL的条件

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

感谢您的帮助!你是对的,这应该可行,但我需要[branch.io](https://branch.io/)的一些解决方案。我现在已经找到了解决方案;-) – Fabi755

+0

很高兴知道... :) – Khushvinder

1

Branch SDK的设计不便于从应用程序自己的webview中路由回应用程序。这就是说,这听起来像你已经得到了一些工作,这是太棒了。

关于抓取从分支链接创建的意图字符串的最简单方法:在安装了应用程序的设备上,将分支链接粘贴到Chrome地址栏并按回车键。意图字符串将出现在地址栏中以及出现在生成的网页上的错误中。

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

相关问题