Code Monkey home page Code Monkey logo

Comments (9)

dpa99c avatar dpa99c commented on August 10, 2024 1

Although I haven't tested this scenario, I am almost certain that the request will fail silently in these cases.

The StoreKit SDK function which requests the rating dialog returns no result, hence the only way it could indicate an error is by throwing an exception and this is not a methodology which iOS APIs commonly subscribe to.

So my prediction is that if the user has already rated the app or dismissed the prompt 3 times, there will be no abnormal response from the iOS API and therefore this plugin's success callback will be invoked.

This is something that I will confirm by testing and if so will add a caveat to the documentation for the plugin.

from cordova-launch-review.

dpa99c avatar dpa99c commented on August 10, 2024 1

@ScottMBerger I did find a possible solution which involves checking if the dialog UI element is present. However, to do so required indirectly referencing the publicly-inaccessible class name of the review dialog. This goes against Apple guidelines, so may lead to rejection during review. However, it might be possible to justify the usage to Apple reviewers in this case.

I might go ahead and add the functionality, but leave it switched off by default. Those willing to try it can turn it on and submit for Apple review at their own risk.

from cordova-launch-review.

dpa99c avatar dpa99c commented on August 10, 2024

This appears to only be testable if the plugin is included in a release build downloaded via the App Store.

In debug builds or locally-installed release builds, the popup continues to appear no matter how many times you dismiss it. The "Submit" button for the popup is also disabled so you cannot actually submit the rating.

Since I don't currently have a live app in the App Store using this functionality, I'm not able to confirm my assumptions above.

from cordova-launch-review.

ScottMBerger avatar ScottMBerger commented on August 10, 2024

I have an app live with this and that seems to be the case. So after it is used 3 times I have a button that does nothing. Would be nice if we had a way to fallback to going to the review page in this case.

Here is the app for reference. https://itunes.apple.com/us/app/sleep-orbit-relaxing-3d-sound-white-noise-asmr/id1215043393?ls=1&mt=8

from cordova-launch-review.

dpa99c avatar dpa99c commented on August 10, 2024

I've tested this in a live app and, as expected, the StoreKit API function fails silently in the error cases: no exception thrown, no error code returned. So this plugin has no way to know if the dialog was successfully shown or not. On that basis, for now, I think the best that can be done is to document this as a caveat.

However! I've recently been doing some automated device testing with Appium and using the Appium Inspector to find native elements using XPaths. So it just occurs to me whether something similar could be done to detect the presence of the dialog programmatically from within the target app: i.e. have the plugin use an XPath query to confirm the presence of the native dialog. Will look into this...

from cordova-launch-review.

ScottMBerger avatar ScottMBerger commented on August 10, 2024

Please let me know if you have found anything new out about this

from cordova-launch-review.

netvillage avatar netvillage commented on August 10, 2024

Hey, this would be cool if it could be set to launch the app store, but not go right to reviews. Instead go to the app so we could direct them from our phonegap app to 'update this app" when necessary.

from cordova-launch-review.

dpa99c avatar dpa99c commented on August 10, 2024

v3 of the plugin (just published) invokes the success callback for LaunchReview.rating() twice:

  • Once after LaunchReview.rating() is called and the request to show the dialog is successful
  • Once if and when the Rating dialog is actually displayed.

Detection of the display of the Rating dialog is done using inspection of the private class name.
This is not officially sanctioned by Apple, so while it should pass App Store review, it may break if the class name is changed in a future iOS version.

Note the major version bump due to backwardly-incompatible API changes. See the updated docs for details and updated examples.

from cordova-launch-review.

mohitarora2 avatar mohitarora2 commented on August 10, 2024

v3 of the plugin (just published) invokes the success callback for LaunchReview.rating() twice:

  • Once after LaunchReview.rating() is called and the request to show the dialog is successful
  • Once if and when the Rating dialog is actually displayed.

Detection of the display of the Rating dialog is done using inspection of the private class name. This is not officially sanctioned by Apple, so while it should pass App Store review, it may break if the class name is changed in a future iOS version.

Note the major version bump due to backwardly-incompatible API changes. See the updated docs for details and updated examples.

How to get the cancel button event of the star rating dialog alert?

from cordova-launch-review.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.