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

Mis*_*vor 6 android android-intent web

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

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

Ale*_*tin 6

您需要将此数据嵌入到附加到URI方案的路径中.假设您使用myapp的自定义方案使用以下intent过滤器设置Activity :

<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>
Run Code Online (Sandbox Code Playgroud)

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

myapp://open?custom_param1=val1
Run Code Online (Sandbox Code Playgroud)

然后,在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
    }
}
Run Code Online (Sandbox Code Playgroud)

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