Skip to content
Xamarin.Plugins by VoxDev
C#
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
StoreRating
packages
.gitattributes
.gitignore
LICENSE.md
README.md
StoreRating.Forms.Plugin.nuspec
StoreRating.sln

README.md

Xamarin.Plugins

Xamarin.Plugins by VoxDev

##Store Rating Plugin for Xamain.Forms

Display a store rating dialog after a certain number of uses, or a certain number of days after installation or on demand (eg on button tap). The user can leave a rating, delay giving a rating or decline to give a rating.

The rating dialog brings up the relevant store page. If the rating request is declined then a feedback dialog is shown which sends an email to the developer.

Store Rating Plugin for Xamain.Forms

Store Rating Plugin for Xamain.Forms

###Settings

The plugin properties can be set once in the shared App.cs file

StoreRatingControl.AppName = "My App";
StoreRatingControl.FeedbackEmail = "myemail@mycompany.com";
StoreRatingControl.IncUsage();

####Required Settings

  • AppName - the name of your application
  • FeedbackEmail - your contact email for receiving feedback

####Optional Settings

  • AppID - the Apple ID of your app
  • IsAmazon - indicates if the Amazon Android store should be shown (instead of the default Google Play store)
  • RatingMessageTitle - the title of the Rating dialog
  • RatingMessage - the body of the Rating dialog
  • RatingCancelText - the cancel button text for the Rating dialog
  • RatingRemindText - the remind later button text for the Rating dialog
  • RatingText - the rate it now button text for the Rating dialog
  • FeedbackMessageTitle - the title of the Feedback dialog
  • FeedbackMessage - the body of the Feedback dialog
  • FeedbackCancelText - the cancel button text for the Feedback dialog
  • FeedbackText - the give feedback button text for the Feedback dialog
  • UsesBeforeRating - the number of application uses before Rating dialog is shown (default 10)
  • DaysBeforeRating - the number of days from first use before the Rating dialog is shown (default 10)
  • DaysBeforeReminder - the number of days after remind later button click before the Rating dialog is shown again (default 5)
  • Preview - force the Rating dialog to show on next use

###Manually Display the Rating Dialog

The Rating dialog can be shown manually, for example on a button click

Button btnRate = new Button
{
    Text = "Rate Now!",
    VerticalOptions = LayoutOptions.CenterAndExpand,
    HorizontalOptions = LayoutOptions.CenterAndExpand,
};
btnRate.Clicked += ((s, e) =>
{
    _ratingControl.ShowRating();
});

###Required Initialisation To ensure that the control does not get linked out in the application the Init methods must be called just after the Xamarin.Forms.Init() in each of the 3 platform specific projects (MainPage.xaml.cs, AppDelegate.cs and MainActivity.cs).

Forms.Init();
StoreRating.Forms.Plugin.WindowsPhone.RatingService.Init();
StoreRating.Forms.Plugin.WindowsPhone.SendMailService.Init();

###Usage Create a StoreRatingControl object and place in a grid on top of your existing page in position (0,0).

	public class App
	{
        private static StoreRatingControl _ratingControl;

		public static Page GetMainPage()
		{
            StoreRatingControl.AppName = "My App";
            StoreRatingControl.AppID = "0123456789";
            StoreRatingControl.FeedbackEmail = "myemail@mycompany.com";
            StoreRatingControl.IncUsage();
            //StoreRatingControl.Preview = true;

            Grid grTopLevel = new Grid
            {
                Padding = 0,
                BackgroundColor = Color.Blue,
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions = LayoutOptions.FillAndExpand,
                RowDefinitions = 
                    {
                        new RowDefinition{ Height = new GridLength(1, GridUnitType.Star) },
                    },
                ColumnDefinitions = 
                    {
                        new ColumnDefinition{ Width = new GridLength(1, GridUnitType.Star) },
                    },
            };

            Button btnRate = new Button
            {
                Text = "Rate Now!",
                VerticalOptions = LayoutOptions.CenterAndExpand,
                HorizontalOptions = LayoutOptions.CenterAndExpand,
            };
            btnRate.Clicked += ((s, e) =>
            {
                _ratingControl.ShowRating();
            });

            StackLayout sl = new StackLayout
            {
                Orientation = StackOrientation.Vertical,
                Children =
                {
                    new Label {
					    Text = "Hello, Forms !",
					    VerticalOptions = LayoutOptions.CenterAndExpand,
					    HorizontalOptions = LayoutOptions.CenterAndExpand,
				    },
                    btnRate
                }
            };

            grTopLevel.Children.Add(sl, 0, 1, 0, 1);

            _ratingControl = new StoreRatingControl();
            grTopLevel.Children.Add(_ratingControl, 0, 1, 0, 1);

			return new ContentPage
			{
                Content = grTopLevel
			};
		}
	}

###Usage Counter To use the usage counter, you need to call the increment function each time the app starts (such as in the shared App.cs file)

StoreRatingControl.AppName = "My App";
StoreRatingControl.FeedbackEmail = "myemail@mycompany.com";
StoreRatingControl.IncUsage();

###License Licensed under MIT see License file

You can’t perform that action at this time.