安卓 Cookies(邀请奖励)

6
我正在尝试集成“邀请奖励”逻辑。我所做的是为每个用户生成一个唯一的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());
        }
    }

但是运气不好。我一直得到“无Cookies”。

我的问题:

  1. 是否可以读取已创建的cookie?如果可以,如何操作?
  2. 如果不行,有什么替代方案可以实现上述功能吗?

感谢您的光临。

2个回答

2
有趣的概念。
对于#1,您将违反Android默认安全协议,其中应用程序不能读取另一个应用程序的私有数据。这包括所有Android上的浏览器,其cookie是相互隔离的,包括您的应用程序。
对于#2,为什么不在重定向到Play Store之前在单个“成功”或“奖励已获得”页面上放置一个简短的口令(易于记忆。从gfycat url生成中获取提示,尽管可能要限制范围和单词大小)? (不确定是否可以在iframe标记中嵌入play store页面)。
更好的是,如果url指向您的应用程序着陆站点,但切换页面上的某些元素以显示口令,并使下载按钮更具吸引力(即使它只链接到play store页面)。
然后用户可以使用短语独特的密码解锁应用程序中的奖励。
我确实看到了您的想法的新颖之处,但这只是建议,因为您无法绕过安全策略。

1
我发现了一种替代我的上述要求的方法,使用广告系列测量
除了集成google-play-services_lib之外,这可以通过3个简单的步骤完成。
1.创建您的邀请URL。
这将是play-store网址+您的唯一代码。例如,我的代码是ABCDEX52362XYZ,那么网址将看起来像https://play.google.com/store/apps/details?id=com.app.yourappspackagename&referrer=utm_source%3DABCDEX52362XYZ
2.&referrer=utm_source%3DABCDEX52362XYZ是这里的重要关键。有关创建此URL的更多详细信息,请参见此处
3.Google说-
当从Google Play Store下载您的应用程序时,Play Store应用程序在安装期间向您的应用程序广播INTENT_REFERRER。如果存在,则此意图包含到达您的应用程序Google Play Store页面的链接的referrer参数的值。
  1. Add the Google Analytics receiver to your AndroidManifest.xml file

    <receiver android:name="com.app.receiver.ReferrerCatcher" android:exported="true">
        <intent-filter>
          <action android:name="com.android.vending.INSTALL_REFERRER" />
        </intent-filter>
    </receiver>
    
  2. Create ReferrerCatcher broadcast receiver to capture the invitation code.

     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          
    
            }
        }
    
      }
    
    }
    
希望这有所帮助。愉快编程。 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接