wilsonatb / nativephp-in-app-reviews
In-App Reviews API
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:nativephp-plugin
pkg:composer/wilsonatb/nativephp-in-app-reviews
Requires
- php: ^8.2
- nativephp/mobile: ^3.0
Requires (Dev)
- pestphp/pest: ^3.0
README
NativePHP plugin for requesting app reviews on Android (Google Play) and iOS (App Store).
Installation
composer require wilsonatb/nativephp-in-app-reviews php artisan native:plugin:register wilsonatb/nativephp-in-app-reviews
Usage (PHP)
Basic Usage
use Nativephp\InAppReviews\Facades\InAppReviews; // Request app review flow $result = InAppReviews::requestReview(); // Result contains status information // $result->status = 'review_process_started'
In Livewire Components
use Livewire\Component; use Native\Mobile\Attributes\OnNative; 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'); } }
Usage (JavaScript)
In Vue/React Components (Inertia)
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); } }
Available JavaScript Functions
requestReview(): Requests the app review flow
Available Methods
PHP Facade Methods
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
Required Permissions
No additional permissions required. Both Google Play In-App Review and App Store Review use system-provided dialogs.
Platform-Specific Behavior
Android
- 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
iOS
- 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
Testing on Real Devices
Android Testing
- 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
iOS Testing
- Test on a physical iPhone/iPad
- App Store Review requires the app to be published in TestFlight
- Use TestFlight for development
Frontend Stack Compatibility
Tested with:
- ✅ Livewire v3
- ✅ Livewire v4
- ✅ Inertia + Vue 3
- ✅ Inertia + React
Environment Variables
No environment variables required.
Support
For issues, questions, or feature requests:
- Email: diwdesign.wilson@gmail.com
- GitHub Issues: [Repository Issues Link]
License
MIT