【发布时间】:2016-10-30 17:07:55
【问题描述】:
我有一个简单的任务:我想跟踪应用安装的推荐 ID 并将其传递给后端。
我做了什么:我创建了一个带有额外参数referrer 的链接,并将其附加到邀请链接。当它打开时,javascript 会检测浏览器是否是 Android 移动浏览器,然后准备一个 intent 并发出指向该意图的重定向。在准备 Intent 时,从 url 中提取 referrer 字段并附加到 intent 中,如下所示:
intent://scan/#Intent;scheme=com.example.android;package=com.example.android&referrer=4;end
这是我的BroadCastReceiver 代码:
public class InstallReferrerReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
TinyDB tinyDB = new TinyDB(context);
String referrer = intent.getStringExtra("referrer");
tinyDB.putString(AppConstants.REFERRAL_ID, referrer);
tinyDB.putBoolean(AppConstants.REFERRAL_SENT, false);
}
}
所以,我期望在这里得到的referrer 的值是4,基于上面的intent。但是我得到的值是这个字符串utm_source=google-play&utm_medium=organic
我做错了什么,如何解决它以获得referrer 字段的正确值?
编辑
安装应用程序后,我在创建 url 或从 referrer 字段中提取值时没有任何问题。
一旦通过任何按钮点击或直接在移动浏览器中打开邀请链接,我使用上面的方法“要么打开已安装的应用程序,要么在 Play Store 应用程序上打开应用程序页面供用户安装它”。
问题是,我应该如何通过上述意图将邀请链接中的referrer字段的值传递给Play商店应用程序,以便Play商店接收该值并在安装时将其传递给应用程序。
【问题讨论】:
-
您考虑过 Firebase 动态链接吗?它更好,更可靠。
-
@Pongpat 我还没有调查过。
-
你感兴趣吗?如果是这样,我可以发布一些简短的解释作为答案。
-
@Pongpat 是的,当然。我会喜欢的。
-
请看下面我的回答。还请发布您使用但不起作用的链接。
标签: android android-intent android-broadcastreceiver install-referrer