从浏览器链接获取数据到应用程序

时间:2015-08-01 18:33:12

标签: android android-intent web

我已经定义了一个意图过滤器来监听我的应用程序中的自定义方案,但我还必须将数据发送到我的应用程序,以便我可以采取相应的行动。

我想要完成的任务 - 发送一个链接到用户(在浏览器中),他点击它,然后将它带到我的应用程序,根据他点击的URL,它将向数据库添加一些数据。

2 个答案:

答案 0 :(得分:6)

您需要将此数据嵌入到附加到URI方案的路径中。我们假设您使用以下自定义方案 myapp 设置您的活动:

<intent-filter>
    <data android:scheme="myapp" />
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
</intent-filter>

现在,创建一个链接,并以查询参数的形式将您想要的所有数据附加到URI方案中:

myapp://open?custom_param1=val1

然后,在onCreate中,您可以解析意图

Uri data = this.getIntent().getData();
if (data != null && data.isHierarchical() && activity != null) {
    if (data.getQueryParameter("custom_param1") != null) {
        String param1 = data.getQueryParameter("custom_param1");
        // do some stuff
    }
}

或者您可以使用像Branch这样的服务,它允许您将JSON格式的无限数据捆绑到链接中,该链接在链接点击和应用打开时检索。它使这个过程更容易。

答案 1 :(得分:0)

您必须将此类别放在您的意图过滤器中:

<category android:name="android.intent.category.BROWSABLE" />