Note: This release is in preview. Features described here don’t become generally available until the latest general availability date that Salesforce announces for this release. Before then, and where features are noted as beta, pilot, or developer preview, we can’t guarantee general availability within any particular time frame or at all. Make your purchase decisions only on the basis of generally available products and features.
AppReviewService Example
Here’s a minimal but complete example of a Lightning web component that uses
AppReviewService to request an app review.
The component’s HTML template contains a button to request an app review.
1<!-- appReviewFeedbackServiceExample.html -->
2<template>
3 <lightning-card title="App Review Feedback" icon-name="custom:custom14">
4 <div class="slds-var-m-around_medium">
5 <div>Hello, {name}!</div>
6 <div class="slds-var-m-top_x-small">
7 <lightning-button label="Request App Review" value="Action" onclick={handleBeginClick}></lightning-button>
8 </div>
9 </div>
10 </lightning-card>
11</template>Each phase of the app review request writes a console message.
1// appReviewServiceExample.js
2import { LightningElement, wire } from 'lwc';
3import { getAppReviewService } from 'lightning/mobileCapabilities';
4import { getRecord, getFieldValue } from 'lightning/uiRecordApi';
5import Id from '@salesforce/user/Id';
6import NAME_FIELD from '@salesforce/schema/User.Name';
7const fields = [NAME_FIELD];
8const userName = getFieldValue(this.user.data, NAME_FIELD)
9
10export default class AppReviewFeedbackService extends LightningElement {
11 userId = Id;
12 user;
13
14 @wire(getRecord, { recordId: '$userId', fields })
15 user;
16
17 get name() {
18 return userName || "Guest User";
19 }
20
21 handleBeginClick(event) {
22 const myAppReviewService = getAppReviewService();
23 if (myAppReviewService.isAvailable()) {
24 myAppReviewService.requestAppReview(null)
25 .then(() => {
26 // Do something with success response
27 console.log("App review request complete successfully");
28 })
29 .catch((error) => {
30 // Handle cancellation and scanning errors here
31 console.error(error);
32 });
33 }
34 else {
35 // Handle with message, error, beep, and so on
36 console.error("App Review service not available");
37 }
38 }
39}