Android 饼干(邀请奖励)
Android Cookies (Reward for Invites)
我正在尝试整合 'reward for invites' 逻辑。为此,我要做的是为每个用户生成一个唯一的 URl。当朋友点击 URL 时,他会被定向到一个页面,然后是 playstore。在页面上,具有唯一 ID 的 cookie 存储在设备上。
注意 -(用户可以在任何浏览器中打开 link)
当设备上的应用程序启动时,我获取使用上面保存的 cookie,如果可用,将其发送到服务器,以便轻松识别和奖励用户。
这看起来很简单,但是我卡在了必须读取 cookie 并提取 id 的位置。
我读到 this 说这是不可能的。 :( 我也试过下面的
List<Cookie> cookies = new DefaultHttpClient().getCookieStore()
.getCookies();
if (cookies.isEmpty()) {
System.out.println("None Cookies");
} else {
for (int i = 0; i < cookies.size(); i++) {
System.out.println("Cookie - " + cookies.get(i).toString());
}
}
但运气不好。我不断收到 "None Cookies".
我的问题:
- 是否可以读取创建的cookie?如果是怎么办?
- 如果没有,关于如何实现上述功能的任何替代方案?
感谢您的光临。
有趣的概念。
至于 #1,您将违反 Android 默认安全协议,应用无法读取其他应用的私有数据。这包括 Android 上的所有浏览器,它们的 cookie 彼此隔离,包括您的应用程序。
对于#2,为什么不在上面放一个简短的密码短语(这很容易记住。从 gfycat url 代中得到启发,尽管可能会尝试限制范围和字数)在重定向到 Play 商店之前,单个 "success" 或 "rewards earned" 页面? (不确定您是否可以将 Play 商店页面嵌入 iframe 标记中)。
更好的是,如果 url 指向您的应用程序登录站点,但切换页面上的某些元素以显示密码并可能使下载按钮更具吸引力(即使它只是链接到 Play 商店页)。
然后用户可以使用简短的唯一密码来解锁应用程序中的奖励。
我确实看到你的想法很新颖,但这当然只是一个建议,因为你无法绕过安全策略。
我找到了一个替代我的上述要求的方法
Campaign Measurement.
除了整合 google-play-services_lib.
之外,还可以通过 3 个简单的步骤完成
创建您的邀请URL。
这将是 play-store url + 您的唯一代码。例如我的代码是 ABCDEX52362XYZ 然后 url 看起来像 https://play.google.com/store/apps/details?id=com.app.yourappspackagename&referrer=utm_source%3DABCDEX52362XYZ
&referrer=utm_source%3DABCDEX52362XYZ 是这里的重要关键。有关创建此 URL 的更多详细信息是 here。
Google 说 -
当您的应用程序是从 Google Play 商店下载时,Play 商店应用程序会在安装期间向您的应用程序广播 INTENT_REFERRER。此 Intent 包含 link 的 referrer 参数值,用于到达您应用的 Google Play 商店页面(如果存在)。
将 Google 分析接收器添加到您的 AndroidManifest.xml 文件
<receiver android:name="com.app.receiver.ReferrerCatcher" android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
创建 ReferrerCatcher 广播接收器来捕获邀请码。
public class ReferrerCatcher extends BroadcastReceiver {
private static String referrer = "";
@Override
public void onReceive(Context context, Intent intent) {
referrer = "";
Bundle extras = intent.getExtras();
if (extras != null) {
referrer = extras.getString("referrer");
if (referrer != null) {
String invitationCode = referrer.replace("utm_source=","");
//referrer is your code plus the google keys, so you need to handle it
}
}
}
}
希望这对您有所帮助。快乐的编码。 :)
我正在尝试整合 'reward for invites' 逻辑。为此,我要做的是为每个用户生成一个唯一的 URl。当朋友点击 URL 时,他会被定向到一个页面,然后是 playstore。在页面上,具有唯一 ID 的 cookie 存储在设备上。
注意 -(用户可以在任何浏览器中打开 link)
当设备上的应用程序启动时,我获取使用上面保存的 cookie,如果可用,将其发送到服务器,以便轻松识别和奖励用户。
这看起来很简单,但是我卡在了必须读取 cookie 并提取 id 的位置。
我读到 this 说这是不可能的。 :( 我也试过下面的
List<Cookie> cookies = new DefaultHttpClient().getCookieStore()
.getCookies();
if (cookies.isEmpty()) {
System.out.println("None Cookies");
} else {
for (int i = 0; i < cookies.size(); i++) {
System.out.println("Cookie - " + cookies.get(i).toString());
}
}
但运气不好。我不断收到 "None Cookies".
我的问题:
- 是否可以读取创建的cookie?如果是怎么办?
- 如果没有,关于如何实现上述功能的任何替代方案?
感谢您的光临。
有趣的概念。
至于 #1,您将违反 Android 默认安全协议,应用无法读取其他应用的私有数据。这包括 Android 上的所有浏览器,它们的 cookie 彼此隔离,包括您的应用程序。
对于#2,为什么不在上面放一个简短的密码短语(这很容易记住。从 gfycat url 代中得到启发,尽管可能会尝试限制范围和字数)在重定向到 Play 商店之前,单个 "success" 或 "rewards earned" 页面? (不确定您是否可以将 Play 商店页面嵌入 iframe 标记中)。
更好的是,如果 url 指向您的应用程序登录站点,但切换页面上的某些元素以显示密码并可能使下载按钮更具吸引力(即使它只是链接到 Play 商店页)。
然后用户可以使用简短的唯一密码来解锁应用程序中的奖励。
我确实看到你的想法很新颖,但这当然只是一个建议,因为你无法绕过安全策略。
我找到了一个替代我的上述要求的方法 Campaign Measurement.
除了整合 google-play-services_lib.
之外,还可以通过 3 个简单的步骤完成创建您的邀请URL。
这将是 play-store url + 您的唯一代码。例如我的代码是 ABCDEX52362XYZ 然后 url 看起来像
https://play.google.com/store/apps/details?id=com.app.yourappspackagename&referrer=utm_source%3DABCDEX52362XYZ
&referrer=utm_source%3DABCDEX52362XYZ 是这里的重要关键。有关创建此 URL 的更多详细信息是 here。
Google 说 -
当您的应用程序是从 Google Play 商店下载时,Play 商店应用程序会在安装期间向您的应用程序广播 INTENT_REFERRER。此 Intent 包含 link 的 referrer 参数值,用于到达您应用的 Google Play 商店页面(如果存在)。
将 Google 分析接收器添加到您的 AndroidManifest.xml 文件
<receiver android:name="com.app.receiver.ReferrerCatcher" android:exported="true"> <intent-filter> <action android:name="com.android.vending.INSTALL_REFERRER" /> </intent-filter> </receiver>
创建 ReferrerCatcher 广播接收器来捕获邀请码。
public class ReferrerCatcher extends BroadcastReceiver { private static String referrer = ""; @Override public void onReceive(Context context, Intent intent) { referrer = ""; Bundle extras = intent.getExtras(); if (extras != null) { referrer = extras.getString("referrer"); if (referrer != null) { String invitationCode = referrer.replace("utm_source=",""); //referrer is your code plus the google keys, so you need to handle it } } } }
希望这对您有所帮助。快乐的编码。 :)