我已经定义了一个意图过滤器来监听我的应用程序中的自定义方案,但我还必须将数据发送到我的应用程序,以便我可以采取相应的行动。
我想要完成的任务 - 发送一个链接到用户(在浏览器中),他点击它,然后将它带到我的应用程序,根据他点击的URL,它将向数据库添加一些数据。
答案 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" />