[BUG] makeReviewTokenRequest not working on watch faces

I'm able to test makeReviewTokenRequest in the sim and it is working for my submitted apps but not for watch faces.  I can't tell what is failing but so far I've seen no reviews for the watch faces and I'm not prompted to review them on my watches.

I'm calling it in onShow() in both cases.

const APP_START_TIME_DELTA = Gregorian.SECONDS_PER_DAY * 7;
const REVIEW_TIME_DELTA = Gregorian.SECONDS_PER_DAY * 180;

    function checkReviewNeeded() {
        if (WatchUi has :makeReviewTokenRequest) {
            var nowT = Time.now().value();
            var appInitialStartTime = Storage.getValue(KEY_appInitialStartTime);
            if (appInitialStartTime == null) {
                appInitialStartTime = nowT;
                Storage.setValue(KEY_appInitialStartTime, appInitialStartTime);
            } else {
                //println("delta: " + (nowT - appInitialStartTime));
                if (nowT - appInitialStartTime > APP_START_TIME_DELTA) {
                    var lastReviewTime = Storage.getValue(KEY_lastReviewTime);
                    if ((lastReviewTime == null || nowT - lastReviewTime > REVIEW_TIME_DELTA)) {
                        WatchUi.makeReviewTokenRequest(method(:reviewCallback));
                    }
                }    
            } 
        }
    }
    
    function reviewCallback(responseStatus as WatchUi.ReviewRequestStatus, token as WatchUi.ReviewResponseToken or Null) as Void {
        switch (responseStatus) {
            case WatchUi.REVIEW_REQUEST_STATUS_GRANTED:
                Storage.setValue(KEY_lastReviewTime, Time.now().value());
                WatchUi.startUserReview(token);
                break;
            case WatchUi.REVIEW_REQUEST_STATUS_DENIED:
                break;
            case WatchUi.REVIEW_REQUEST_STATUS_FAILED:
                break;
        }
    }

Anyone else seeing this?
Thx,
Pete

  • Hi, and , have you solved this for your WFs? It works in the simulator, but I'm not getting any reviews.

  • I recently had a user that filled in the review from the watch face and text from the connect iq app, and it wasn't stored to the store, others are, but not like expected numbers. I don't know if that was due to instructions on posting the review were not clear (like it's not clear when you use sub categories in settings users need to go back to the main settings screen to save changes), or it might be a technical problem. When I test my watch faces on my watch, it does ask me and I only give a star rating without comment, that is always registered. So my guess is, there is some usability or technical problem when people add comments to it from the app.

  • Thanks for the input. Where and how do you call it? I assumed that the prompt closes on the next onUpdate, and the user has less than a second to react. And is this prompt at all similar to what the simulator shows?

  • , @beva, any response, please?

    All three of you have posted on these forums since I last asked.

  • Missed it. You might want to install a trial watchface from VAW.BE, and see how it gets invoked in 15 minutes to see the system user interaction. Or my Tix trial, but it will take two days before it gets invoked. It's a system app so it does not depend on your onUpdate function.

    I have build my review procedure based on the developers info:

    https://developer.garmin.com/connect-iq/core-topics/requesting-reviews/

    I initialize the review proces from my onShow function in the extended WatchUi.WatchFace class.

  • You might want to install

    Unfortunately, I can't test this myself.

    It's a system app so it does not depend on your onUpdate function.

    We all know how things work in CIQ, and I wouldn't be surprised if this feature turns out to be completely unusable, just like the settings grouping you mentioned.

    I have build my review procedure based on the developers info

    I used to read this page over and over again, wondering if I had missed anything. There is nothing new for me there.

    I initialize the review proces from my onShow function in the extended WatchUi.WatchFace class.

    OK, I came to the same decision myself. It's nice to know it actually works, but apparently not in my case. According to stats, my WF has thousands of users with devices that support this API, but I haven't seen any increase in the usual, close to zero, number of new reviews. I bet it's statistically impossible for everyone to refuse an offer to leave a review, so I'm guessing it's a UI, as you said, or a technical issue, that can't be reproduced in the simulator.

    Thanks for your replies.