Android Cookies(邀请奖励)

时间:2015-06-17 14:27:08

标签: android google-chrome cookies android-browser

我正在尝试整合“奖励邀请”逻辑。我想为此做的是为每个用户生成一个独特的URl。当朋友点击该URL时,他将被定向到一个页面,然后被定向到该Playstore。在页面上,具有唯一ID的cookie存储在设备上。

注 - (用户可以在任何浏览器中打开链接)

当设备上的应用程序启动时,我会获取使用上面保存的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());
        }
    }

但没有运气。我一直收到“无饼干”。

我的问题:

  1. 是否可以阅读创建的cookie?如果是的话怎么样?
  2. 如果没有,可以选择如何实现上述功能?
  3. 感谢您的光临。

2 个答案:

答案 0 :(得分:2)

有趣的概念。

对于#1,您将违反Android默认安全协议,其中应用无法读取其他应用私有数据。这包括Android上的所有浏览器,其Cookie彼此隔离,包括您的应用。

对于#2,为什么不换一个简短的密码短语(很容易记住。从gfycat url生成中获取提示,但可能尝试限制范围和字大小)在单个“成功”或“奖励赢得“重定向到Play商店之前的页面? (不确定是否可以将游戏商店页面嵌入iframe标签中)。

更好的是,如果网址指向您的应用登陆网站,但切换页面上的某些元素以显示密码短语,并且可能使下载按钮更具吸引力(即使它只是链接到播放商店页面)。

然后,用户可以使用简短的唯一密码来解锁应用中的奖励。

我确实看到你的想法很新颖,但这当然是一个建议,因为你无法绕过安全政策。

答案 1 :(得分:1)

我找到了替代上述要求的替代品 Campaign Measurement

除了集成google-play-services_lib之外,还可以通过3个简单的步骤完成。

  1. 创建邀请网址。

    这将是Play-store网址+您的唯一代码。例如,我的代码是ABCDEX52362XYZ,那么网址将显示为https://play.google.com/store/apps/details?id=com.app.yourappspackagename&referrer=utm_source%3DABCDEX52362XYZ

  2. &amp; referrer = utm_source%3DABCDEX52362XYZ 是此处的重要关键。有关创建此网址的详细信息为here

    谷歌说 -

    当您的应用从Google Play商店下载时,Play商店应用会在安装过程中向您的应用广播一个INTENT_REFERRER。此意图包含用于访问应用的Google Play商店页面的链接的referrer参数值(如果存在)。

    1. 将Google Analytics接收器添加到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>
      
    2. 创建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          
      
              }
          }
      
        }
      
      }
      
    3. 希望这会有所帮助。快乐的编码。 :)