system.openURL FAILURE for Ratings/Reviews

We found a new problem we haven’t seen before.

On my Android 6.0 HTC One A9, when we attempt to take someone to create a rating/review at      system.openURL(“https://play.google.com/store/apps/details?id=us.rdgames.PlayTheBible#details-reviews”), we get the message:

     “To view this content, install and set up a web browsing app.”

I’ve been told that I should do it this way, but can anyone confirm this?

local options = {
   iOSAppId = “1234567890”,
   supportedAndroidStores = { “google”, “amazon” }
   }
native.showPopup( “appStore”, options )

Can anyone provide guidance on the best method to open the Ratings page for all app stores?

Hi Troy,

Shouldn’t the first parameter be “rateApp”, not “appStore”? You said you want to go to the ratings page…

[lua]

native.showPopup( “rateApp”, options )

[/lua]

Brent

@troylyndon
 
As Brent mentioned, native.showPopup(“rateApp”, options) should work fine for Android.
 
On the other hand this will open up the app’s main overview page on iOS. For iOS you can use system.openURL() with the following “URL recipe” to directly go to the reviews page for your app: 
 

"https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?mt=8&type=Purple+Software&id=YOUR\_IOS\_APPID"

Hi @ingemar_cl, for IOS, I use this:

itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=YOUR_IOS_APPID&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software

So, for ratings, the definitive code we should use is as follows:

local platform=system.getInfo(“platformName”)

if platform==“android” then

         options = { iOSAppId = “1234567890”, supportedAndroidStores = { “google”, “amazon” } }

         native.showPopup( “rateApp”, options )

elseif platform==“ios” then

         theUrl=“itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=YOUR_IOS_APPID&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software”

         system.openURL( theUrl )

end

Hi Troy,

Personally, I would stick to using the “rateApp” method for both. Apple has reasons for changing things that they do, whether “we” like it or not. Any long URL recipe, especially one as long/complicated as that, is prone to break (404) if Apple decides to change something. IIRC, they might do exactly that with iOS 11 in terms of how app reviews work, so this becomes especially risky.

I know you want to go directly to the “rate” screen, not to the app’s main overview page, but Apple doesn’t really want you doing that.

Just my two cents,

Brent

I am confirming that Apple broke the URL method I was using, as Brent predicted.To get a rating for iOS and Android, you must :

                         options={ iOSAppId=“0123456789”, supportedAndroidStores={“google”, “amazon”} }
                         native.showPopup( “rateApp”, options )

Of course, enter your iOSAppId and include or remove google or amazon, depending upon which Android stores you are supporting.

Hi Troy,

Shouldn’t the first parameter be “rateApp”, not “appStore”? You said you want to go to the ratings page…

[lua]

native.showPopup( “rateApp”, options )

[/lua]

Brent

@troylyndon
 
As Brent mentioned, native.showPopup(“rateApp”, options) should work fine for Android.
 
On the other hand this will open up the app’s main overview page on iOS. For iOS you can use system.openURL() with the following “URL recipe” to directly go to the reviews page for your app: 
 

"https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?mt=8&type=Purple+Software&id=YOUR\_IOS\_APPID"

Hi @ingemar_cl, for IOS, I use this:

itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=YOUR_IOS_APPID&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software

So, for ratings, the definitive code we should use is as follows:

local platform=system.getInfo(“platformName”)

if platform==“android” then

         options = { iOSAppId = “1234567890”, supportedAndroidStores = { “google”, “amazon” } }

         native.showPopup( “rateApp”, options )

elseif platform==“ios” then

         theUrl=“itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=YOUR_IOS_APPID&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software”

         system.openURL( theUrl )

end

Hi Troy,

Personally, I would stick to using the “rateApp” method for both. Apple has reasons for changing things that they do, whether “we” like it or not. Any long URL recipe, especially one as long/complicated as that, is prone to break (404) if Apple decides to change something. IIRC, they might do exactly that with iOS 11 in terms of how app reviews work, so this becomes especially risky.

I know you want to go directly to the “rate” screen, not to the app’s main overview page, but Apple doesn’t really want you doing that.

Just my two cents,

Brent

I am confirming that Apple broke the URL method I was using, as Brent predicted.To get a rating for iOS and Android, you must :

                         options={ iOSAppId=“0123456789”, supportedAndroidStores={“google”, “amazon”} }
                         native.showPopup( “rateApp”, options )

Of course, enter your iOSAppId and include or remove google or amazon, depending upon which Android stores you are supporting.