dpa99c / cordova-launch-review Goto Github PK
View Code? Open in Web Editor NEWCordova/Phonegap plugin for iOS and Android to assist in leaving user reviews/ratings in the App Stores
Cordova/Phonegap plugin for iOS and Android to assist in leaving user reviews/ratings in the App Stores
Hello,
Great plugin, thanks for all the hard work.
It appears that isRatingSupported() only works correctly on the iPhone, not on the iPad Mini. It returns true in all circumstances on the iPad.
My limited knowledge in this area would suggest this is probably down to the use of the constant: __IPHONE_10_3 AND __IPHONE_OS_VERSION_MAX_ALLOWED in LaunchReview.m.
I'm submitting a ... (check one with "x"):
The "Submit" button is disabled. Why?
Expected behavior:
The "Submit" button is enabled
Steps to reproduce:
Call this.launchReview.rating()
Environment information
8.1.2 ([email protected])
ios 4.5.5
com.omarben.inappreview 0.0.5 "inappreview"
cordova-background-geolocation-lt 2.14.2 "BackgroundGeolocation"
cordova-clipboard 1.2.1 "Clipboard"
cordova-fabric-plugin 1.1.14-dev "cordova-fabric-plugin"
cordova-launch-review 3.1.1 "Launch Review"
cordova-plugin-add-swift-support 1.7.2 "AddSwiftSupport"
cordova-plugin-app-version 0.1.9 "AppVersion"
cordova-plugin-background-fetch 5.4.1 "CDVBackgroundFetch"
cordova-plugin-badge 0.8.8 "Badge"
cordova-plugin-cocoalumberjack 0.0.4 "CocoaLumberjack"
cordova-plugin-device 2.0.2 "Device"
cordova-plugin-file 6.0.1 "File"
cordova-plugin-filepicker 1.1.5 "File Picker"
cordova-plugin-fingerprint-aio 1.5.0 "FingerprintAllInOne"
cordova-plugin-google-analytics 1.8.6 "Google Universal Analytics Plugin"
cordova-plugin-httpd 0.9.2 "CorHttpd"
cordova-plugin-ionic-keyboard 2.1.3 "cordova-plugin-ionic-keyboard"
cordova-plugin-ionic-webview 3.0.0 "cordova-plugin-ionic-webview"
cordova-plugin-local-notification 0.9.0-beta.2 "LocalNotification"
cordova-plugin-splashscreen 5.0.2 "Splashscreen"
cordova-plugin-ssh-tunnel 1.1.0 "SSHTunnel"
cordova-plugin-statusbar 2.4.2 "StatusBar"
cordova-plugin-taptic-engine 2.1.0 "Taptic Engine"
cordova-plugin-whitelist 1.3.3 "Whitelist"
cordova-plugin-x-socialsharing 5.4.4 "SocialSharing"
cordova-sqlite-storage 2.6.0 "Cordova sqlite storage plugin"
es6-promise-plugin 4.2.2 "Promise"
ProductName: Mac OS X
ProductVersion: 10.14.2
BuildVersion: 18C54
Runtime issue
iOS build issue:
v10.15.0
10.1
If using an Ionic Native Typescript wrapper for this plugin:
Ionic:
ionic (Ionic CLI) : 4.7.1 (/usr/local/lib/node_modules/ionic)
Ionic Framework : @ionic/angular 4.0.0-rc.1
@angular-devkit/build-angular : 0.11.4
@angular-devkit/schematics : 7.1.4
@angular/cli : 7.1.4
@ionic/angular-toolkit : 1.2.2
Cordova:
cordova (Cordova CLI) : 8.1.2 ([email protected])
Cordova Platforms : ios 4.5.5
Cordova Plugins : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 3.0.0, (and 22 other plugins)
System:
Android SDK Tools : 26.1.1 (/Users/bushev/Library/Android/sdk)
ios-deploy : 1.9.4
NodeJS : v10.15.0 (/usr/local/bin/node)
npm : 6.5.0
OS : macOS Mojave
Xcode : Xcode 10.1 Build version 10B61
├─┬ @ionic-native/[email protected]
├─┬ @ionic-native/[email protected]
├─┬ @ionic-native/[email protected]
├─┬ @ionic-native/[email protected]
├─┬ @ionic-native/[email protected]
├─┬ @ionic-native/[email protected]
├─┬ @ionic-native/[email protected]
├─┬ @ionic-native/[email protected]
├─┬ @ionic-native/[email protected]
├─┬ @ionic-native/[email protected]
├─┬ @ionic-native/[email protected]
├─┬ @ionic-native/[email protected]
├─┬ @ionic-native/[email protected]
├─┬ @ionic-native/[email protected]
├─┬ @ionic-native/[email protected]
I wonder why you decided to implement the store calls in native code?
Wouldn't document.location.href="market://details?id=appId
do the same? Similar for iOS.
The only native function would be the new in-app review.
I try to understand the historical reason. Maybe this was not possible 2 years ago to just launch the store URLs from script?
LaunchReview.launch(storeId) is not working anymore on iOS11.
It launches App Store App but then a message "Cannot Connect to App Store" is displayed.
I'm submitting a ... (check one with "x"):
In Documentation you wrote:
{string} appID [...] If not specified, the plugin will use the app ID for the app in which the plugin is contained
But for iOS is not clear if this is a Apple ID
or Bundle ID
.
I assume that it is Bundle ID
cause this is only one that we can set in Xcode on General > Bundle Identifier
In the same time as parameter in launch()
Advanced usage
is used Apple ID
- when I try to use Bundle Id
I get an error appears: App not found
.
Can you clarify this issue in Documentation: which one (Apple ID
or Bundle ID
) should be used?
BTW Is rating
mrthod also use Bundle ID
as default?
I'm submitting a...
Add support for the new Google Play In-App Review API to enable in-app review prompts for Android devices. Extend support for the rating() function to work on Android, and update isRatingSupported() to reflect it.
https://developer.android.com/guide/playcore/in-app-review
https://android-developers.googleblog.com/2020/08/in-app-review-api.html
I think at least in Android it would be possible to detect the bundle ID automatically. It is equal to the config.xml value. For iOS apps its a little bit more difficult, as we only have the [NSBundle mainBundle].bundleIdentifier
.
Also couldn't we get rid of the separate inAppRating functions for iOS and instead use a unified rate
function that:
inApp: true
.Then there is no boilerplate code needed in the app.
We would have to decide on the default value of inApp
option. I think it should be true
so that newer iOS versions always show the inApp rating. In case the developer always wants the user to go to the store to rate she would have to set it to false
.
What do you think?
CHECKLIST
[x ] I have read the issue reporting guidelines
[x ] I confirm this is a suspected bug or issue that will affect other users
Current behavior:
This is breaking on v4.0.0 on Android versions 7 - 10, but older version 3.1.1 still works on v7 - 10. I don't have an Android 11 device (yet) to test on so I don't know the behavior for v11.
Result is returning value 0, not opening dialog but also causing external app review to not launch.
LaunchReview.rating(function(result) { // result = 0, unexpected }
Expected behavior:
On Android, using old v3.1.1 advanced code or the new v4.0.0 advanced code, rating result
returns value while also not prompting for dialog box or launching external app store review. Condition 0
is not an expected response.
Steps to reproduce:
var MAX_DIALOG_WAIT_TIME = 5000; //max time to wait for rating dialog to display
var ratingTimerId;
LaunchReview.rating(function(result){
console.log(result) ; // value is 0, android does nothing.
if(cordova.platformId === "ios"){
if(result === "requested"){
console.log("Requested display of rating dialog");
ratingTimerId = setTimeout(function(){
console.warn("Rating dialog was not shown (after " + MAX_DIALOG_WAIT_TIME + "ms)");
}, MAX_DIALOG_WAIT_TIME);
}else if(result === "shown"){
console.log("Rating dialog displayed");
clearTimeout(ratingTimerId);
}else if(result === "dismissed"){
console.log("Rating dialog dismissed");
}
} else if(cordova.platformId === "android"){
console.log("Rating dialog displayed"); // console msg prints, but nothing happens.
}
},function(err){
console.log("Error opening rating dialog: " + err);
});
To fix, I had to add:
} else if(cordova.platformId === "android"){
console.log("Rating dialog displayed"); // but nothing happens
if (result === 0) {
// call extneral launch function
$scope.rateAppLaunch() ;
}
}
I was reading through some of the obscure details around iOS in-app review (http://daringfireball.net/2017/01/new_app_store_review_features), and I came across two worrisome points.
If a customer has rated the app, they will not be prompted again. If a customer has dismissed the review prompt three times, they will not be asked to review the app for another year.
Do you happen to know whether the error handler will be called in each of those cases? For us, we ask the user directly if they're interested in reviewing the app before calling LaunchReview.rating()
, so we want to make sure we know whether the dialog popped up.
Is this an open source project? MIT license?
Thank you.
CHECKLIST
I have read the issue reporting guidelines
I confirm this is a suspected bug or issue that will affect other users
Current behavior:
requestReview
API is deprecated
Expected behavior:
Should use requestReviewInScene
API
CHECKLIST
I have read the issue reporting guidelines
I confirm this is a suspected bug or issue that will affect other users
Current behavior:
If the rating dialog is displayed successfully on iOS, the result will not be returned.
Expected behavior:
result returns show if rating dialog is displayed successfully on iOS
Steps to reproduce:
I haven't written any special code
Screenshots
Environment information
Runtime issue
iOS build issue:
Related code:
LaunchReview.rating(result => {
console.log('result: ' + result);
if (cordova.platformId === 'android') {
console.log('Rating dialog displayed');
} else if (cordova.platformId === 'ios') {
if (result === 'requested') {
console.log('Requested display of rating dialog');
this.ratingTimerId = setTimeout(() => {
console.warn('Rating dialog was not shown (after ' + 5000 + 'ms)');
}, 5000);
} else if (result === 'shown') {
console.log('Rating dialog displayed');
clearTimeout(this.ratingTimerId);
} else if (result === 'dismissed') {
console.log('Rating dialog dismissed');
}
}
}, (err) => {
console.log('Error opening rating dialog: ' + err);
});
Console output
[Log] Running [email protected] (cordova.js, line 1413)
[Log] result: requested (cordova.js, line 1413)
[Log] Requested display of rating dialog (cordova.js, line 1413)
[Warning] Rating dialog was not shown (after 5000ms) (cordova.js, line 1413)
Other information:
When the rating dialog is displayed
It has been confirmed that the windowDidBecomeVisibleNotification of LaunchReview.m is called.
At this time, notification.object was not MonitorObject but SKStoreReviewPresentationWindow was returned.
It seems to be related to the issue below
#18
Would you be open to supporting Windows Phone in the launch()
method, which would redirect to the appropriate store URL (e.g. 'ms-windows-store://pdp/?ProductId=<the apps Store ID>'
)?
Happy to submit a PR!
CHECKLIST
I have read the issue reporting guidelines
I confirm this is a suspected bug or issue that will affect other users
Current behavior:
When the modal prompt is shown there is nothing to review, this plugin only redirects to the apps's main page app store.
Expected behavior:
We should review the app as described in the google play in-app API.
Steps to reproduce:
or use the example provided by modifying the Id on the launch function like the following:
function launchreview(){
LaunchReview.launch(function (){
showAlert("Successfully launched review app");
}, function (err){
showAlert("Error launching review app: " + err);
}, 'com.cbord.get');
}
Screenshots
Environment information
11.0.0
cordova platform ls
cordova plugin ls
Runtime issue
Android build issue:
v14.18.1
gradle-7.2
android:targetSdkVersion
in AndroidManifest.xml
sdkmanager --list | sed -e '/Available Packages/q'
Related code:
insert any relevant code here such as plugin API calls / input parameters
Console output
FAILURE: Build failed with an exception.
Could not find tools.jar. Please check that /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home contains a valid JDK installation.
Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
Get more help at https://help.gradle.org
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.5/userguide/command_line_interface.html#sec:command_line_warnings
BUILD FAILED in 2s
19 actionable tasks: 3 executed, 16 up-to-date
Command failed with exit code 1: /Users/x/Projects/company/POCS/cordova-launch-review-example/platforms/android/gradlew cdvBuildDebug -b /Users/x/Projects/company/POCS/cordova-launch-review-example/platforms/android/build.gradle
// Paste any relevant JS/native console output here
function launchreview(){
LaunchReview.launch(function (){
showAlert("Successfully launched review app");
}, function (err){
showAlert("Error launching review app: " + err);
}, 'com.cbord.get');
}
Other information:
Please update graddle version if possible.
Hi, I am getting the issue ERROR NullInjectorError: R3InjectorError(Or)[t -> t -> t]:
NullInjectorError: No provider for t! - on the Android
Thanks
Need some config
parameter to pass in launch
function as first argument:
var config = {
rating: 3
};
LaunchReview.launch(config, successCallback, errorCallback);
And this will open App Store or Google Play with 3-stars rating.
Any thoughts?
hello,
how can i call the review after x lunchs ?
thanks
Thanks for your diligent work on this plugin!
As it stands, the dismissed
event triggered by the rating()
method doesn't appear to differentiate between cancellations and successful ratings. I don't suppose it'd be feasible to pass an explicit result?
I haven't yet checked the appropriate HealthKit documentation, but assuming this is feasible I'd be happy to submit a PR.
I'm submitting a ... (check one with "x"):
Current behavior:
The LaunchReview.rating()
never returns other results than the requested
result. No shown
or dismissed
is ever called.
Expected behavior:
The LaunchReview.rating()
should work as described in the readme and returns different results for different scenarios.
Steps to reproduce:
Call the following code and observe console for the result returned when dealing with the rating window:
LaunchReview.rating( function(result) {
console.log('result:', result);
}, function(err){
console.log('error:', err);
})
Environment information
cordova-launch-review 3.1.1
XCode 11.3
Runtime issue
Device details
iPhone 8 Simulator
OS details
iOS 13.3
XCode version
XCode 11.3
CHECKLIST
[ x] I have read the issue reporting guidelines
[ x] I confirm this is a suspected bug or issue that will affect other users
Current behavior:
I do an npm i @awesome-cordova-plugins/launch-review
I do a build and get a missing dependency error:
⠏ update ios [warn] Plugins are missing dependencies.
Cordova plugin dependencies must be installed in your project (e.g. w/ npm install).
cordova-launch-review is missing dependencies:
- cordova-plugin-device (^2.0.3)
Your package.json dependencies are empty
Expected behavior:
Steps to reproduce:
I do an npm i @awesome-cordova-plugins/launch-review
I do a build and get a missing dependency error:
⠏ update ios [warn] Plugins are missing dependencies.
Cordova plugin dependencies must be installed in your project (e.g. w/ npm install).
cordova-launch-review is missing dependencies:
- cordova-plugin-device (^2.0.3)
Your package.json dependencies are empty
Screenshots
Environment information
cordova -v
cordova platform ls
cordova plugin ls
sw_vers
winver
Runtime issue
Android build issue:
node -v
ls platforms/android/.gradle
android:targetSdkVersion
in AndroidManifest.xml
sdkmanager --list | sed -e '/Available Packages/q'
iOS build issue:
node -v
Related code:
insert any relevant code here such as plugin API calls / input parameters
Console output
// Paste any relevant JS/native console output here
Other information:
The donate button in the github readme is broken.
The donation link in FUNDING.yml works but not the one in the readme.
hello,
how can i call to open the "write review" tab directly?
Thanks
Is there any way to change the language of the Rating Modal windows? I am developing a multi-language app and I'd love to open the Modal Window in the selected language in the app by the user. Is this possible?
Thank you,
Ernesto
Receiving "Rating dialog requires iOS 10.3+" error when calling the LaunchReview.rating() function on a iOS device running 10.3.1.
I'm submitting a ... (check one with "x"):
Current behavior:
When I'm using the plugin feature of showing the app rating dialog, the first time it takes a few seconds to appear. And the following attempts are almost instantaneous.
Expected behavior:
Being almost instantaneous from the first attempt.
Note: I'm connected to Wifi so the problem should not be something about downloading remote information.
Steps to reproduce:
Environment information
I'm using an iPhone 6 with iOS 12.2
Thank you @dpa99c , you've done a great job :)
I have read the issue reporting guidelines
I confirm this is a suspected bug or issue that will affect other users
I have reproduced the issue using the example projector provided the necessary information to reproduce the issue - Cannot be reproduced with the example since it is not starting a real review window.
I have read the documentation thoroughly and it does not help solve my issue.
I have checked that no similar issues (open or closed) already exist.
Current behavior:
After submitting the review an error is shown. In logcat I could only find:
Finsky : [2] riw.b(2): Error posting review: network time: 0, HTTP status code: 400, exception com.google.android.finsky.networkrequests.NetworkRequestException: Error retrieving information from server. DF-DFERH-01
and the review doesn't get submitted to Google Play Store. I tried this on two different devices and with different google play accounts but it is always the same. The app is already in Google Play available, but I still did test it with the internal test track. Not sure if this is even supposed to work in the internal test track?
Expected behavior:
There should be no error once the review is submitted and the review should be available in Google Play Store.
Steps to reproduce:
Environment information
Runtime issue
CHECKLIST
I have read the issue reporting guidelines
I confirm this is a suspected bug or issue that will affect other users
Current behavior:
I try to integrate the plugin in my ionic / cordova application.
I don't have any problem with iOS, I get the popup with the app icon and the 5 stars to fill. However, i can't get it with 2 android devices. The isSupportedRating() returns true, but when i run this code (the same that is working for iOS), nothing happens, but i get the success log in the console (with the param variable 0). I put the code below.
It seems it's a configuration issue, or an ionic incompatibility, because there's no other bugs reported about that, and there's no reason it doesn't work. The launchReview function works perfectly, this is why I don't think it's a
I tried to look at the Android in-app review documentation, and I checked the requirements :
Expected behavior:
Showing the android review popup in the app.
Environment information
9.0.0 ([email protected])
android 8.1.0
cordova-launch-review 4.0.0 "Launch Review"
cordova-plugin-androidx 1.0.2 "cordova-plugin-androidx"
cordova-plugin-androidx-adapter 1.1.0 "cordova-plugin-androidx-adapter"
cordova-plugin-badge 0.8.8 "Badge"
cordova-plugin-device 2.0.3 "Device"
cordova-plugin-file 6.0.1 "File"
cordova-plugin-firebase-analytics 4.3.0 "FirebaseAnalyticsPlugin"
cordova-plugin-local-notification 0.9.0-beta.3 "LocalNotification"
cordova-plugin-market 1.2.0 "Market"
cordova-plugin-network-information 2.0.1 "Network Information"
cordova-plugin-splashscreen 5.0.2 "Splashscreen"
cordova-plugin-statusbar 2.4.2 "StatusBar"
cordova-plugin-whitelist 1.3.3 "Whitelist"
cordova-sqlite-storage 3.3.0 "Cordova sqlite storage plugin - cordova-sqlite-storage plugin version"
cordova-support-android-plugin 1.0.1 "cordova-support-android-plugin"
cordova-support-google-services 1.4.0 "cordova-support-google-services"
ionic-plugin-keyboard 2.2.1 "Keyboard"
ProductName: Mac OS X
ProductVersion: 10.13.6
BuildVersion: 17G11023
Runtime issue
Android build issue:
v10.16.0
4.10.3 buildOutputCleanup vcs-1
28
Installed packages:=====================] 100% Computing updates...
Path | Version | Description | Location
------- | ------- | ------- | -------
build-tools;26.0.2 | 26.0.2 | Android SDK Build-Tools 26.0.2 | build-tools/26.0.2/
build-tools;28.0.3 | 28.0.3 | Android SDK Build-Tools 28.0.3 | build-tools/28.0.3/
build-tools;29.0.2 | 29.0.2 | Android SDK Build-Tools 29.0.2 | build-tools/29.0.2/
emulator | 29.0.11 | Android Emulator | emulator/
extras;android;m2repository | 30.0.0 | Android Support Repository | extras/android/m2repository/
extras;google;google_play_services | 49 | Google Play services | extras/google/google_play_services/
extras;google;m2repository | 25 | Google Repository | extras/google/m2repository/
patcher;v4 | 1 | SDK Patch Applier v4 | patcher/v4/
platform-tools | 29.0.2 | Android SDK Platform-Tools | platform-tools/
platforms;android-25 | 3 | Android SDK Platform 25, rev 3 | platforms/android-25/
platforms;android-26 | 2 | Android SDK Platform 26 | platforms/android-26/
platforms;android-27 | 3 | Android SDK Platform 27 | platforms/android-27/
platforms;android-28 | 6 | Android SDK Platform 28 | platforms/android-28/
sources;android-25 | 1 | Sources for Android 25 | sources/android-25/
sources;android-28 | 1 | Sources for Android 28 | sources/android-28/
tools | 26.1.1 | Android SDK Tools | tools/
Available Packages:
Related code:
console.log('isRatingSupported ?', this.launchReview.isRatingSupported());
this.launchReview.rating().then((param) => {
console.log('Successfully launched rating ', param);
}, (err) => {
console.log("Error launching rating: ", err);
});
Console output:
16:32:43.790 isRatingSupported ? true
16:32:43.815 Successfully launched rating 0
Great job for the lib, and I hope anyone will be able to help me :)
Hello,
thanks for your plugin
is there a way to display a review dialog after x time of use / lunch on Android?
Hello, first thank you for this great plugin.
On android, we tested internally the new feature (native in app review). It ask for a mandatory comment after giving a rating, but in the documentation screenshots show leaving a comment is optional ?
How to set this plugin to optional ?
Thanks
Using the exact code like is explained on Ionic documentation for native apps the rating screen in app is not displaying. The function isRatingSupported() is returning true. Any help??
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.