Rate This App ... for Kindle and Nook

I would like to add a “Rate this App” feature for Kindle and Nook. I’ve found links on how to accomplish this for iOS iTunes and Android Play Store. I found the below helpful for these devices:

http://corona.techority.com/2010/12/07/how-to-add-a-rate-it-button-to-your-iphone-app/
http://developer.coronalabs.com/code/rate-app-popup

Has anyone added this feature to Kindle or Nook? If so, is there a reliable way to determine the device type with a combination of system.getInfo(“model”) and system.getInfo(“platformName”) to sort out the proper url of the device marketplace or is this something that needs to be modified in the code for builds targeted for each device?

Thanks.

-Jeremy [import]uid: 161992 topic_id: 33682 reply_id: 333682[/import]

You can actually just use native.showPopup() now:

https://developer.coronalabs.com/forum/2012/01/03/link-review-nook-are-intents-required-workarounds
http://docs.coronalabs.com/api/library/native/showPopup.html

This can be used for iTunes, Google Play, Amazon, Samsung and Nook. And all in one function! [import]uid: 84115 topic_id: 33682 reply_id: 133891[/import]

Thanks Alan. That seems like what I’m looking for.

From the docs then, this is what I should be doing.

local options = { iOSAppId = "1234567890", nookAppEAN = "0987654321", supportedAndroidStores = { "google", "samsung", "amazon", "nook" }, } native.showPopup("rateApp", options) [import]uid: 161992 topic_id: 33682 reply_id: 133901[/import]

I got burned by this issue. That works for everything but Amazon. Because Amazon has a generic Android store in addition to the Kindle Fire store, the app can get confused as to if it should use Google Play or Amazon for the store when on the Amazon store. Amazon will reject the app if it tries to access Google Play while testing it.

Do something like this:

local model = system.getInfo("model")  
local options  
if model == "Kindle Fire" or model == "WFJWI" or model == "KFTT" or model == "KFOT" or model == "KFJWA" or model == "KFJWI" then  
 options =  
 {  
 supportedAndroidStores = {"amazon"},  
 }  
else  
 options =  
 {  
 iOSAppId = "1234567890",  
 nookAppEAN = "0987654321",  
 supportedAndroidStores = { "google", "samsung", "nook" },  
 }  
end  
native.showPopup("rateApp", options)  

To avoid Amazon’s issues.

[import]uid: 199310 topic_id: 33682 reply_id: 133947[/import]

Thanks for the tip Rob. Good to hear you’ve had experience with this.

Just to clarify, in your example above, do I need to include a value for androidAppPackageName in options for both Amazon and The Google? Or does that happen automagically?

Thanks again. [import]uid: 161992 topic_id: 33682 reply_id: 133956[/import]

The android app package name is only if you want to link to some other app. If you leave it off, it uses the currently running app.
[import]uid: 199310 topic_id: 33682 reply_id: 133957[/import]

Perfect. Exactly what I needed to know. Thanks. [import]uid: 161992 topic_id: 33682 reply_id: 133958[/import]

You can actually just use native.showPopup() now:

https://developer.coronalabs.com/forum/2012/01/03/link-review-nook-are-intents-required-workarounds
http://docs.coronalabs.com/api/library/native/showPopup.html

This can be used for iTunes, Google Play, Amazon, Samsung and Nook. And all in one function! [import]uid: 84115 topic_id: 33682 reply_id: 133891[/import]

Thanks Alan. That seems like what I’m looking for.

From the docs then, this is what I should be doing.

local options = { iOSAppId = "1234567890", nookAppEAN = "0987654321", supportedAndroidStores = { "google", "samsung", "amazon", "nook" }, } native.showPopup("rateApp", options) [import]uid: 161992 topic_id: 33682 reply_id: 133901[/import]

I got burned by this issue. That works for everything but Amazon. Because Amazon has a generic Android store in addition to the Kindle Fire store, the app can get confused as to if it should use Google Play or Amazon for the store when on the Amazon store. Amazon will reject the app if it tries to access Google Play while testing it.

Do something like this:

local model = system.getInfo("model")  
local options  
if model == "Kindle Fire" or model == "WFJWI" or model == "KFTT" or model == "KFOT" or model == "KFJWA" or model == "KFJWI" then  
 options =  
 {  
 supportedAndroidStores = {"amazon"},  
 }  
else  
 options =  
 {  
 iOSAppId = "1234567890",  
 nookAppEAN = "0987654321",  
 supportedAndroidStores = { "google", "samsung", "nook" },  
 }  
end  
native.showPopup("rateApp", options)  

To avoid Amazon’s issues.

[import]uid: 199310 topic_id: 33682 reply_id: 133947[/import]

Thanks for the tip Rob. Good to hear you’ve had experience with this.

Just to clarify, in your example above, do I need to include a value for androidAppPackageName in options for both Amazon and The Google? Or does that happen automagically?

Thanks again. [import]uid: 161992 topic_id: 33682 reply_id: 133956[/import]

The android app package name is only if you want to link to some other app. If you leave it off, it uses the currently running app.
[import]uid: 199310 topic_id: 33682 reply_id: 133957[/import]

Perfect. Exactly what I needed to know. Thanks. [import]uid: 161992 topic_id: 33682 reply_id: 133958[/import]

When you compile for the Amazon market place it is better to use some other switch instead of just checking the Model

Something like isAmazonStore.

The reason is that they will sell your app to many devices if you tell them that your app is not just for the kindle ( ie… put it in your NOTES like Please compile for all devices not just Kindle Devices )

local isAmazonStore = true;  
  
if isAmazonStore then  
 options =  
 {  
 supportedAndroidStores = {"amazon"},  
 }  
else  
 etc.....  

Larry [import]uid: 11860 topic_id: 33682 reply_id: 139397[/import]

When you compile for the Amazon market place it is better to use some other switch instead of just checking the Model

Something like isAmazonStore.

The reason is that they will sell your app to many devices if you tell them that your app is not just for the kindle ( ie… put it in your NOTES like Please compile for all devices not just Kindle Devices )

local isAmazonStore = true;  
  
if isAmazonStore then  
 options =  
 {  
 supportedAndroidStores = {"amazon"},  
 }  
else  
 etc.....  

Larry [import]uid: 11860 topic_id: 33682 reply_id: 139397[/import]

now we have the system.getInfo(“targetAppStore”) to handle this case

now we have the system.getInfo(“targetAppStore”) to handle this case

I am still a little confuse with this rate button. I am hoping to release for Amazon and Google PlayStore. The issue is that Amazon seems to also be selling Android apps. Also would I need to use system.getInfo(“targetAppStore”) for this?  I am trying to avoid to have two builds (one for Amazon Kindle) and one for Google Playstore.

I am thinking of something like:

******

local optionsRating =

{

  

   supportedAndroidStores = { “google”, “amazon” },

}

– Then in a button event have:

native.showPopup(“rateApp”, optionsRating)

******

Would that piece of code works for both Amazon (Kindle/general Android) and Google Play Store? Or is Amazon would likely reject the app because I am using “google” in the option table?

Finally, I did not put any app ID (like I used to do with IOS) since my understanding (I could be wrong) that both Amazon and PlayStore simply use the current loaded app to automagically figure out the app the user is trying to review. Unlike IOS where you have to specify the app ID. My understanding for google and amazon I only need the to setup an app ID if I want to review a different app than the one calling the review link.

I hope I making some sense:)

This is the last piece of the puzzle I need to figure before sending my first Android implementation of ios app to both Amazon and the Play Stores!

Thank you guys.

Mo

I would like to add a “Rate this App” feature for Kindle and Nook. I’ve found links on how to accomplish this for iOS iTunes and Android Play Store. I found the below helpful for these devices:

http://corona.techority.com/2010/12/07/how-to-add-a-rate-it-button-to-your-iphone-app/
http://developer.coronalabs.com/code/rate-app-popup

Has anyone added this feature to Kindle or Nook? If so, is there a reliable way to determine the device type with a combination of system.getInfo(“model”) and system.getInfo(“platformName”) to sort out the proper url of the device marketplace or is this something that needs to be modified in the code for builds targeted for each device?

Thanks.

-Jeremy [import]uid: 161992 topic_id: 33682 reply_id: 333682[/import]

Yes I did it. But I didn’t do it myself as I had some doubts. I took help from one of my developer friend works in mobile app design agency.

Mo, what I would do is see what store you built the app for (on the Android build screen you pick which store) using the system.getInfo(“targetAppStore”) see;  http://docs.coronalabs.com/api/library/system/getInfo.html#targetappstore

then when you call native.showPopup() then have a big “if” statement, to say:

if store is google then

     call it for google

elseif it’s for amazon then

     call it for amazon

end

etc. 

Rob