Skip to content

Instantly share code, notes, and snippets.

@jakeorr
Forked from psyked/RateMe.js
Last active May 12, 2017 10:22
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save jakeorr/6032340 to your computer and use it in GitHub Desktop.
Save jakeorr/6032340 to your computer and use it in GitHub Desktop.
function RateMe(ios_url, goog_url, usecount) {
if(!Ti.App.Properties.hasProperty('RemindToRate')) {
Ti.App.Properties.setString('RemindToRate', 0);
}
var remindCountAsInt = parseInt(Ti.App.Properties.getString('RemindToRate'), 10);
var newRemindCount = remindCountAsInt + 1;
if(remindCountAsInt === -1) {
// the user has either rated the app already, or has opted to never be
// reminded again.
return false;
} else if(newRemindCount < usecount) {
Ti.App.Properties.setString('RemindToRate', newRemindCount);
} else if(newRemindCount >= usecount) {
var alertDialog = Titanium.UI.createAlertDialog({
title : 'Please rate this app!',
message : 'Would you take a moment to rate this app?',
buttonNames : ['OK', 'Remind Me Later', 'Never'],
cancel : 2
});
alertDialog.addEventListener('click', function(evt) {
switch (evt.index) {
case 0:
// "Ok" - open the appropriate rating URL, and set flag to never
// ask again
Ti.App.Properties.setString('RemindToRate', -1);
if(Ti.Android) {
Ti.Platform.openURL(goog_url);
} else {
Ti.Platform.openURL(ios_url);
}
break;
case 1:
// "Remind Me Later"? Ok, we'll reset the current count to zero
Ti.App.Properties.setString('RemindToRate', 0);
break;
case 2:
// "Never" - Set the flag to -1, to never ask again
Ti.App.Properties.setString('RemindToRate', -1);
break;
}
});
alertDialog.show();
}
}
function iOSURLFromAppId(appId) {
return 'itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=' + appId + '&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software';
}
function googURLFromAppId(appId) {
return 'market://details?id=' + appId;
}
exports.checkNow = RateMe;
exports.iOSURLFromAppId = iOSURLFromAppId;
exports.googURLFromAppId = googURLFromAppId;
var RateMe = require('RateMe');
var iOSURL = RateMe.iOSURLFromAppId('384080636');
var googURL = RateMe.googURLFromAppId('couk.mmtdigital.orion.ianrankin');
RateMe.checkNow(iOSURL, googURL, 1);
@srikpunu
Copy link

srikpunu commented Apr 9, 2015

Thank you Sir. I will use in my app.

@a1g0rithm
Copy link

What if a user hits review and it brings it to the reviews/ratings page in the store but then the user does not leave feedback. Does this see that and keep prompting the user since they didn't truly leave a review or rating?

@wackyapps
Copy link

a1g0rithm Once user has gone pass the app and in review UI of iTunes then you don't get information if he did or didn't rated.
These dialogue are to take user to rating screen but cannot control if they rated or not

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment