arashpayan / appirater

A utility that reminds your iPhone app's users to review the app.

Home Page:http://arashpayan.com/blog/2009/09/07/presenting-appirater/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Use SKStoreProductViewController for in-app rating (feature request)

fernandonf opened this issue · comments

Hi,

Starting from iOS 6, it's possible to show an iTunes controller within the app with the SKITunesProductViewController class.

I believe this could be used to rate the app. This means the user wouldn't need to abandon the app being rated in order to rate it.

Implementing this wouldn't be trivial, since we need to push the view controller. I believe we would need to make some changes to the delegate protocol:

  1. We need to get the view controller that will be used to push and dismiss the modal controller. If the user doesn't implement this delegate method, we may fall back to jumping to the iTunes URL.

  2. We need to let the delegate know when we're pushing a view controller (e.g. so a game can pause) and when we're dismissing it (e.g. so a game can unpause).

  3. We may need to ask the delegate if we should push with animations enabled or not, as pushing with animations can be troublesome in some (rare) cases.

Thoughts?

Regards,

Hi,

If SKITunesProductViewController really does let the user rate the app, then I think this is a great idea.

  1. I believe it should be possible to present the SKITunesProductViewController without another UIViewController. If instead Appirater creates a second window, and the product view is placed in there.

  2. Yeah, for something like this the app will definitely need a delegate method to know it's being covered up and uncovered. The Appirater API will also need a method that the app can call if it needs to immediately dismiss the product view in case it has to grab the user's attention. For example, a VoIP app with an incoming phone call would need to get rid of the product view and show the phone call.

  3. True.

I'm not doing a much iOS development these days so if you could implement this feature, I'd be very grateful. If not, that's cool too. The issue can remain open and hopefully someone can pick it up.

Thanks,
Arash

Hi,

I implemented this in #91. Let me know how it looks.

Looks great. I just merged it in. Thank you @nathangreenstein . Do you have any interest in being a maintainer on the project? There's a back log of issues and pull requests to go through, and I could use your help.

Did not work for me on iPad. Problem: rootViewController was still set to the UIAlertView. Need to determine correct rootViewController, see

mrcmd@986f3bb

@mrcmd You're right! Good catch; I was using a custom rate button and missed that. You should PR your fix. It would also be good to switch +closeModal to use +getRootViewController.

@arashpayan Yes, definitely. I'd be glad to help out.

Just committed a super easy fix for this: #92.

Merged pull request #92.

Also added you as a collaborator to the project, @nathangreenstein. Thank you for your help!

commented

It seems as if the Rate button is disabled on iOS 7 when showing the AppStore via SKStoreProductViewController.

@fabb I ran into the same problem this morning. Review button is disabled in SKStoreProductViewController in iOS7 :( However, when app page is opened via AppStore reviewing is possible. I'm confused.
Am I missing something?

@OctoCatKensington the issue you're experiencing is documented in #138. I fixed it this evening with the 2.0.2 release.