1

我正在编写一个 Windows Phone 8 应用程序,我想检查用户是否已经连续使用我的应用程序 3 天,至少每天一次。如果他们这样做,我会给他/她关于礼物的小费。

在这里我想知道如何检查用户是否连续使用我的应用程序 3 天(需要每天至少使用我的应用程序一次)。

4

2 回答 2

2

将时间存储在您的应用程序存储中。

http://www.jeffblankenburg.com/2010/10/15/31-days-of-windows-phone-day-15-isolated-storage/

更新: 这将使它成为 4 U:

private void Application_Launching(object sender, LaunchingEventArgs e) {
    EnsureCheckThreeDaysInARow();
}

private void Application_Activated(object sender, ActivatedEventArgs e) {
    EnsureCheckThreeDaysInARow();
}

public bool EnsureCheckThreeDays() {
    IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
    if (settings.Contains("threeMagicalDay"))
    {
        var data = new List<DateTime>();
        if (data.Count() >= 3 && !data.Any(a => a.Date == DateTime.Now.Date))
            data.Remove(data.Min());
        data.Add(DateTime.Now);
        var someTransform = data.OrderByDescending(a => a).Select(b => new Tuple<int,int,int>(b.Year,b.Month, b.Day)).Aggregate((c,d) => new Tuple<int,int,int>(c.Item1 - d.Item1, c.Item2 - d.Item2, c.Item3 - d.Item3));
        if (someTransform.Item1 == -DateTime.Now.Date.Year && someTransform.Item2 == -DateTime.Now.Date.Month && someTransform.Item3 == 0)
        {
            //There you go...
        }
        else
        {
            //Handle it...
        }
        settings["threeMagicalDay"] = data;
    }
    else 
    settings.Add("threeMagicalDay", new List<DateTime>(){DateTime.Now});

    return false;
}
于 2013-03-21T10:08:50.313 回答
1

每次用户启动应用程序时,都会记录当前日期。(将其添加到您存储在隔离存储中的文件中的列表可能是最简单的方法。)

然后检查该列表以查看它是否还包括最近两天的条目。如果是这样,那么您知道您处于应该显示提示的情况。

您需要添加适当的逻辑以在适当的情况下从列表中删除旧数据,并且可能不会每天添加多个条目。您可能还需要考虑如何处理在第 3 天多次打开应用程序以及是否多次显示提示。

于 2013-03-21T12:32:17.180 回答