/// <summary> /// 获取当前活动 /// </summary> /// <param name="tryTimes"></param> /// <returns></returns> private async Task GetCurrentActivities(int tryTimes = 2) { if (LastGetActivityTime > DateTime.Now.AddMinutes(-5)) //三分钟以内不重复获取 { return; } var advertisementResult = await OfoApi.GetAdvertisementsAsync(await PositionUtility.GetUnFixBasicPositionAsync()); if (await CheckOfoApiResult(advertisementResult)) { LastGetActivityTime = DateTime.Now; //缓存起始屏幕splash var cacheSplashTask = Task.Run(async() => { try { if (advertisementResult?.Data?.splash?.Count > 0) { var splashInfo = advertisementResult.Data.splash[0]; if (!splashInfo.ImgName.Equals(Global.AppConfig.LastCacheSplashFileName)) //缓存的不是当前Splash { if (await LocalCacheUtility.CacheHttpFileAsync(splashInfo.ImgName, splashInfo.ImgUrl)) { Global.AppConfig.LastCacheSplashFileName = splashInfo.ImgName; Global.AppConfig.CacheSplashExpire = VariousUtility.TimeStampToDateTime(splashInfo.expire * 10000L); Global.SaveAppConfig(); } } } } catch (Exception ex) { Debug.WriteLine(ex); } }); var activity = advertisementResult.Data.activity?.Count > 0 ? advertisementResult.Data.activity[0] : null; if (activity != null) { if (Global.AppConfig.LastShowActivityId == activity.id && Global.AppConfig.LastShowActivityTime > DateTime.Now.AddHours(-3)) //今天已经显示过当前活动,则不再显示 { return; } else //显示活动 { ActivityPopupContentView activityPopupContentView = new ActivityPopupContentView(); ActivityPopupContentViewModel popupContentViewModel = new ActivityPopupContentViewModel() { Activity = activity, }; await ShowContentNotifyAsync(activityPopupContentView, popupContentViewModel); } } } else { if (tryTimes-- > 0) { await GetCurrentActivities(tryTimes); } } }