👇 support for Amplify Cloud and Mobile 👇
🪦 RIP Axway Amplify Titanium (2010 - 2022)
🪦 RIP Axway Amplify Cloud Services (2012 - 2022)
🪦 RIP Axway Amplify Crash Analytics (2015 - 2022)
A few of the open-source versions of Axway Amplify products will live on after Axway Amplify End-of-Life (EOL) announcements. However, all closed-source projects and most open-source projects are now dead.
👉 A group of Axway employees, ex-Axway employees, and some developers from Titanium community have created a legal org and now officially decide all matters related to future of these products.
API FAQ:
↑ Watch video on YouTube ↑
@titanium/review-dialog
Native module that allows you to use the Apple's Store Review Dialog in Axway Titanium native mobile apps. Uses the SKStoreReviewController
from iOS 10.3+ in your Titanium application.
📝 Description
This is a repackaging of the compiled iOS module for ti.reviewdialog to allow for installation via npm.
🚀 Getting Started
Install @titanium/review-dialog
in root of project
npm install @titanium/review-dialog
Sample code
const win = Ti.UI.createWindow({
backgroundColor: '#fff'
});
const btn = Ti.UI.createButton({
title: 'Open Review Dialog!'
});
btn.addEventListener('click', function() {
const ReviewDialog = require('@titanium/review-dialog');
ReviewDialog.requestReview();
});
win.add(btn);
win.open();
✨Features
const dialog = require('@titanium/review-dialog');
Requirements
Usage
There are some important notes on when to show the rating dialog (thanks to @skypanther:
- The internal API itself will decide when, or if, to show the prompt
- You should not show it more than once for a given version of your app
- You should not show the dialog in response to user actions (like after a user clicks a button)
- You should not show it on first app launch (even after an update) but should wait until the user has used your app for a "meaningful" amount.
The following (ES6+ based) example shows how to use it in a real world example. It relies on the semver module / http://gitt.io/component/semver to compare app versions.
Apple's own example uses a simple launch count to determine "meaningful" amount of use, which is also used
in this example. You should use something appropriate for your app (amount of time, completion of an
action N times, etc.):
import semver from 'semver';
import Review from 'ti.reviewdialog';
let countOfSomeUserAction = Ti.App.Properties.getInt('countOfSomeUserAction', 0);
countOfSomeUserAction += 1;
Ti.App.Properties.setInt('countOfSomeUserAction', countOfSomeUserAction);
if (countOfSomeUserAction >= 4) {
const lastVersionPromptedForReview = Ti.App.Properties.getString('lastVersionPromptedForReview', '1.0.0');
let appVersion = Ti.App.version;
const appVersionAsArray = appVersion.split('.');
if (appVersionAsArray.length > 3) {
appVersion = appVersionAsArray[0] + '.' + appVersionAsArray[1] + '.' + appVersionAsArray[2];
}
if (semver.gt(appVersion, lastVersionPromptedForReview)) {
Ti.App.Properties.setString('lastVersionPromptedForReview', appVersion);
if (Review.isSupported()) {
Review.requestReview();
}
}
}
Hyperloop
This module is also built in Hyperloop to demonstrate the native API access with JavaScript.
You can simple require the ti.reviewdialog.js
in your application and run it!
Example
Request a new review dialog:
const review = require('@titanium/review-dialog');
if (review.isSupported()) {
review.requestReview();
}
Methods
Author
Hans Knoechel (@hansemannnn / Web)
Contributing
Code contributions are greatly appreciated, please submit a new pull request!
📚Learn More
📣 Feedback
Have an idea or a comment? Join in the conversation here!
©️ Legal
License
Apache 2.0