Link to Review on NOOK - are intents required? Workarounds?

Everyone,

We’ve recently added a new API called [lua]native.showPopup(“rateApp”)[/lua] that will display the “Write Review” window for your app from the app store that it was downloaded from. It supports the following app stores:

  • iTunes App Store
  • Google Play
  • Samsung App Store
  • Amazon App Store
  • Nook App Store

Here is a quick example of how to call this function.
[lua]local settings =
{
iOSAppId = “Your iOS App’s ID”,
nookAppEAN = “Your Nook App’s EAN”,
supportedAndroidStores = { “samsung”, “google”, “amazon”, “nook” },
}
native.showPopup(“rateApp”, settings)[/lua]

You only need to provide an app ID and EAN on iOS and Nook respectively. No additional information is required for Google Play, Amazon, or Samsung app stores since they use your app’s package name as the ID.

The [lua]supportedAndroidStores[/lua] setting is needed in case your app was not installed by an app store (such as via “adb install”), in which case Corona has to guess which app store it belongs to. Corona does this by hunting down all of the app stores installed on the Android device and it picks one of those stores, but only if it is in your supported list.

This new feature will be made available in daily build #907, tomorrow. We’ve also update the documentation for the [lua]native.showPopup()[/lua] function in that daily build’s API docs. [import]uid: 32256 topic_id: 19903 reply_id: 123741[/import]

Love it, Joshua. Now if you only made that change where I could remove the unnecessary stuff from the AndroidManifest.xml file in the later builds so that I could use this new feature for my android/kindle/nook/samsung releases… [import]uid: 160496 topic_id: 19903 reply_id: 123757[/import]

Nice! [import]uid: 147305 topic_id: 19903 reply_id: 123758[/import]

One thing - this only goes to the app’s page. What if you want to send someone to another app’s page (for example the Lite version sending to Full version page)? [import]uid: 160496 topic_id: 19903 reply_id: 123774[/import]

Great Joshua - thanks! [import]uid: 40033 topic_id: 19903 reply_id: 123784[/import]

Mike,

This API is designed to only go to the currently running app’s details window in the app store. In fact, on an iPhone and iPod, it goes straight to the “Write Review” window and shows no app details at all. This is because most Corona developers have been more concerned about having their end-users rating their app.

…but you bring up a good point. Perhaps this new API is too restrictive and we should consider changing it. How about we get rid of “rateApp” and change it to something like the below?
[lua]local settings =
{
requestView = “writeReview”,
iOSAppId = “Your iOS App’s ID”,
nookAppEAN = “Your Nook App’s EAN”,
androidAppPackageName = “your.package.name”,
supportedAndroidStores = { “samsung”, “google”, “amazon”, “nook” },
}
native.showPopup(“appDetails”, settings)[/lua]

We can then make the [lua]androidAppPackageName[/lua] setting optional where if you don’t set it, then Corona uses the currently running app’s package name by default. Otherwise, you can set it to another app’s package name to advertise it to the end-user.

I’m thinking [lua]requestView[/lua] can be an optional way to go directly to the Write Review view on iOS, bypassing the app details view. This will make it behave the way it works now. If you omit this setting, then it will go directly to the app details view instead which you would use to advertise your other apps. I’m calling it “request” view because (as far as I know of) only the iTunes app store allows you to go directly to the Write Review view.

So, what are your thoughts? [import]uid: 32256 topic_id: 19903 reply_id: 123785[/import]

I like. Easy change, eh? [import]uid: 160496 topic_id: 19903 reply_id: 123790[/import]

Joshua ,

Please, go get the [lua]requestView[/lua] (the one that let the user goes directly to the Write Review view. It will be even more awesome I agree as well. :wink:
Cheers,
Rodrigo. [import]uid: 89165 topic_id: 19903 reply_id: 123796[/import]

I like the requestView idea. Giving us more control than less. :slight_smile: [import]uid: 88147 topic_id: 19903 reply_id: 123812[/import]

I agree Josh I think this is a great idea to have the option to use this API to display other apps as well. I am already using it in that fashion in our newest nook app and it is just a perfect solution for that.

[import]uid: 5786 topic_id: 19903 reply_id: 125805[/import]

Everyone,

Just so you know, we did add the ability to display other apps in the app store. This was added as of daily build #912. That was a few weeks ago. Sorry about forgetting to inform you all.

The API documentation on our daily build page has been updated to reflect this newest change. It does a pretty good job describing how it works… but below is a quick example of the finalized API.
[lua]local options =
{
iOSAppId = “1234567890”,
nookAppEAN = “0987654321”,
androidAppPackageName = “my.other.app.”,
supportedAndroidStores = { “google”, “samsung”, “amazon”, “nook” },
}
native.showPopup(“appStore”, options)[/lua]

The [lua]androidAppPackageName[/lua] is optional and allows you to specify the package name of another app. If you do not set it, then Corona will use your app’s package name by default.

We still support the [lua]“rateApp”[/lua] popup option to be backward compatible with what we had before. This will attempt to jump straight to the “Write Review” window on iOS 5 or lower systems. It turns out that this is not possible on iOS 6 or any other app store, so it will display the App Store Details window instead just like how [lua]“appStore”[/lua] works.

One more thing. Some people are getting their app’s rejected by Amazon because their [lua]supportedAndroidStores[/lua] lists both “google” and “amazon”, but it turns out that Corona guessed wrong and launched the Google Play store instead. There is no nice way for Corona to guess correctly which store it belongs to if the app was installed by hand (in this case the app reviewer). So, I recommend that you do separate builds per app store that you are targeting and set the [lua]supportedAndroidStores[/lua] to the appropriate store name. There isn’t really any other nice way of doing this… and it’s no different than what Java developers are doing who build with the Android SDK. [import]uid: 32256 topic_id: 19903 reply_id: 126018[/import]

Thank you @Joshua, one more amazing post of yours…

Cheers,
Rodrigo. [import]uid: 89165 topic_id: 19903 reply_id: 126019[/import]

I agree Josh I think this is a great idea to have the option to use this API to display other apps as well. I am already using it in that fashion in our newest nook app and it is just a perfect solution for that.

[import]uid: 5786 topic_id: 19903 reply_id: 125805[/import]

Everyone,

Just so you know, we did add the ability to display other apps in the app store. This was added as of daily build #912. That was a few weeks ago. Sorry about forgetting to inform you all.

The API documentation on our daily build page has been updated to reflect this newest change. It does a pretty good job describing how it works… but below is a quick example of the finalized API.
[lua]local options =
{
iOSAppId = “1234567890”,
nookAppEAN = “0987654321”,
androidAppPackageName = “my.other.app.”,
supportedAndroidStores = { “google”, “samsung”, “amazon”, “nook” },
}
native.showPopup(“appStore”, options)[/lua]

The [lua]androidAppPackageName[/lua] is optional and allows you to specify the package name of another app. If you do not set it, then Corona will use your app’s package name by default.

We still support the [lua]“rateApp”[/lua] popup option to be backward compatible with what we had before. This will attempt to jump straight to the “Write Review” window on iOS 5 or lower systems. It turns out that this is not possible on iOS 6 or any other app store, so it will display the App Store Details window instead just like how [lua]“appStore”[/lua] works.

One more thing. Some people are getting their app’s rejected by Amazon because their [lua]supportedAndroidStores[/lua] lists both “google” and “amazon”, but it turns out that Corona guessed wrong and launched the Google Play store instead. There is no nice way for Corona to guess correctly which store it belongs to if the app was installed by hand (in this case the app reviewer). So, I recommend that you do separate builds per app store that you are targeting and set the [lua]supportedAndroidStores[/lua] to the appropriate store name. There isn’t really any other nice way of doing this… and it’s no different than what Java developers are doing who build with the Android SDK. [import]uid: 32256 topic_id: 19903 reply_id: 126018[/import]

Thank you @Joshua, one more amazing post of yours…

Cheers,
Rodrigo. [import]uid: 89165 topic_id: 19903 reply_id: 126019[/import]

Hi Joshua Quick,

can I do this ?
local settings =
{
nookAppEAN = “Your Nook App’s EAN”,
supportedAndroidStores = { “nook” },
}
native.showPopup(“rateApp”, settings)

basically I only want NOOK rate’s window/page.

will this work ? if yes.

can i also do this. ?

local appsettings
{
options =
{
nookAppEAN = “Your Nook App’s EAN”,
supportedAndroidStores = { “nook” },
}
}

native.showPopup(“rateApp”, appsettings.options)
[import]uid: 157599 topic_id: 19903 reply_id: 126568[/import]

rbm1155,

The answer is yes for both of your questions. :slight_smile:

In fact, I’m now recommending that people “target” one specific Android app store in their code now in case the app reviewer (Google Play, Amazon, or Samsung) happens to have an alternative app store installed on their device. Although Nook is unique because a Nook device will most likely never have any other app store installed. [import]uid: 32256 topic_id: 19903 reply_id: 126570[/import]

Thank you for your lightning quick response Josh.

on a side note, i got this rejection email from NOOK using build 929

Files: Rejected: 1.Your application is not scaling properly on the Nook
HD/HD+ immediately after launch.It scales properly after we suspend and
re-launch it.

Any ideas ?

[import]uid: 157599 topic_id: 19903 reply_id: 126574[/import]

also Joshua,

is there a showpop for NOOK to show all the apps by the developer in the store ? [import]uid: 157599 topic_id: 19903 reply_id: 126576[/import]

rbm1155,

There are only 2 known issues in regards to scaling…

  1. If your app supports BOTH portrait and landscape orientations, then your app’s content will be misplaced when your app changes orientations. This is a known issue that occurs on all Android tablets running Android OS v3.x and above… not just Nook HD. We’re looking into this issue “today”. Currently, the only work-around is to set up your app with a fixed orientation on Android tablets.

  2. Displaying the virtual keyboard on a Nook HD causes content to be misplaced. This is only a Nook HD issue and Barnes & Noble are looking into resolving this issue on their end before they ship. But just in case, we’re looking into working around it on our end too.

So, do you think your app is hitting one of the issues mentioned above?
Other than the issues I’ve mentioned, there are no known scaling issues with Corona on Nook HD. We’ve tried all 3 scaling features (ie: letterbox, zoomEven, zoomStretch) with a Nook HD prototype on our end and it’s working fine so far.

Regarding showing a popup that lists all of your apps on the B&N store, I don’t believe that is possible. B&N only documents how to show one app via a popup. However, you can work-around this by listing all of your apps within your app. [import]uid: 32256 topic_id: 19903 reply_id: 126580[/import]