添加"评价我的应用"到Web App模板

时间:2014-05-09 19:33:06

标签: windows-phone-8

有一个名为Web App Template(又名WAT - http://wat.codeplex.com/)的项目,它允许您将Web应用程序包装为Windows 8 / Windows Phone 8应用程序。我已经对应用程序执行了此操作,现在我正在尝试添加"评价我的应用程序"它的特色。我不知道在哪里/是否可以为要添加的组件注入代码。

我在这里关注指南:http://developer.nokia.com/community/wiki/Implement_%22Rate_My_App%22_in_under_60_seconds

我坚持第5步 - 在哪里添加事件处理程序?没有MainPage.xaml.cs,我也没有看到任何类似的文件。

我想WAT正在调用另一个库来加载Web浏览器。有什么方法可以将事件处理程序和方法注入此库中吗?

1 个答案:

答案 0 :(得分:1)

我建议不要提示用户对我的应用进行评分'在应用程序的第一次打开时,应该给用户一些时间来查看应用程序的外观以及它的功能。因此,保持应用程序启动次数并要求在应用程序的第5-10次发布后对应用程序进行评级将更有意义。此外,您应该检查是否已经提示用户为您的应用评分,如果是,请不要再次提示。 (否则你会用“评价我的应用程序'评分”来惹恼他们

为了实现这一目标,您应该首先在应用设置类中保持应用启动计数。

用于存储任何类型设置的界面:

 public interface ISettingService
    {
        void Save();
        void Save(string key, object value);
        bool AddOrUpdateValue(string Key, object value);
        bool IsExist(string key);
        T Load<T>(string key);
        T GetValueOrDefault<T>(string Key, T defaultValue);
    }

使用上述界面存储此类计数和设置的评级服务类:

public class RatingService
    {
        private const string IsAppRatedKeyName = "isApprated";
        private const string TabViewCountKeyName = "tabViewCount";

        private const bool IsAppratedDefault = false;
        private const int TabViewCountDefault = 0;
        private const int ShowRatingInEveryN = 7;

        private readonly ISettingService _settingService;

        [Dependency]
        public RatingService(ISettingService settingService)
        {
            _settingService = settingService;
        }

        public void RateApp()
        {
            if (_settingService.AddOrUpdateValue(IsAppRatedKeyName, true))
                _settingService.Save();
        }

        public bool IsNeedShowMessage()
        {
            return (_settingService.GetValueOrDefault(TabViewCountKeyName, TabViewCountDefault)%ShowRatingInEveryN) == 0;
        }

        public void IncreaseTabViewCount()
        {
            int tabCount = _settingService.GetValueOrDefault(TabViewCountKeyName, TabViewCountDefault);

            if (_settingService.AddOrUpdateValue(TabViewCountKeyName, (tabCount + 1)))
                _settingService.Save();
        }

        public bool IsAppRated()
        {
            return _settingService.GetValueOrDefault(IsAppRatedKeyName, IsAppratedDefault);
        }
    }

这是您运行此类功能的方法,并提示用户对项目中的任何位置(主页或用户启动某些功能的其他页面)评估应用程序(如果以前未评级):

 private void RunRating()
        {
            if (!RatingService.IsAppRated() && RatingService.IsNeedShowMessage())
            {
                MessageBoxResult result = MessageBox.Show("Review the app?", "Would you like to review this awesome app?",
                    MessageBoxButton.OKCancel);
                //show message.
                if (result == MessageBoxResult.OK)
                {
                    RatingService.RateApp();
                    new MarketplaceReviewTask().Show();
                }
            }
        }