NativePHP plugin for requesting app reviews on Android (Google Play) and iOS (App Store).
composer require wilsonatb/nativephp-in-app-reviews
php artisan native:plugin:register wilsonatb/nativephp-in-app-reviewsuse Nativephp\InAppReviews\Facades\InAppReviews;
// Request app review flow
$result = InAppReviews::requestReview();
// Result contains status information
// $result->status = 'review_process_started'use Livewire\Component;
use Nativephp\InAppReviews\Facades\InAppReviews;
class ReviewComponent extends Component
{
public ?string $reviewStatus = null;
public function requestReview(): void
{
$result = InAppReviews::requestReview();
$this->reviewStatus = $result->status ?? 'unknown';
}
public function render()
{
return view('livewire.review-component');
}
}import { requestReview } from './vendor/nativephp/in-app-reviews/resources/js/InAppReviews.js';
// Request review flow
async function requestAppReview() {
try {
const result = await requestReview();
console.log('Review process started:', result.status);
} catch (error) {
console.error('Failed to request review:', error);
}
}requestReview(): Requests the app review flow
InAppReviews::requestReview(): ?object- Requests the app review flow- Returns: Object with
statusproperty - Platform-specific behavior:
- Android: Launches Google Play In-App Review flow
- iOS: Requests App Store Review using StoreKit
- Returns: Object with
No additional permissions required. Both Google Play In-App Review and App Store Review use system-provided dialogs.
- Uses Google Play In-App Review API (com.google.android.play:review:2.0.2)
- Minimum Android SDK version: 30
- The review dialog is shown by Google Play services
- User can rate the app without leaving your app
- Uses StoreKit's modern AppStore.requestReview API (with fallbacks for older versions)
- Minimum iOS version: 16.0
- The review request is managed by iOS
- Apple may limit how often the prompt appears
- Test on a physical Android device (not just emulator)
- Google Play In-App Review requires the app to be published in Google Play (internal/alpha/beta track)
- Use Google Play internal testing track for development
- Test on a physical iPhone/iPad
- App Store Review requires the app to be published in TestFlight
- Use TestFlight for development
Tested with:
- ✅ Livewire v3
- ✅ Livewire v4
- ✅ Inertia + Vue 3
- ✅ Inertia + React
No environment variables required.
For issues, questions, or feature requests:
- Email: diwdesign.wilson@gmail.com
- GitHub Issues: Issues
MIT
