我已经定义了一个intent过滤器来监听我的应用程序中的自定义方案,但我还必须将数据发送到我的应用程序,以便我可以采取相应的行动.
我想要完成的任务 – 发送一个链接到用户(在浏览器中),他点击它,并将他带到我的应用程序,它将根据他点击的URL将一些数据添加到数据库.
解决方法
您需要将此数据嵌入到附加到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>
现在,创建一个链接,并以查询参数的形式将所需的所有数据附加到URI方案:
myapp://open?custom_param1=val1
然后,在onCreate中,您可以解析intent
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格式的无限数据捆绑到链接中,该链接在链接点击和应用程序打开时检索.它使这个过程更容易.