Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Flutter Web #1237

Draft
wants to merge 9 commits into
base: main
Choose a base branch
from
Draft

WIP: Flutter Web #1237

wants to merge 9 commits into from

Conversation

tonidero
Copy link
Contributor

@tonidero tonidero commented Jan 7, 2025

This PR adds initial support for RevenueCat's Web SDK in the Flutter plugin. The implementation:

  • Adds web platform support through purchases_flutter_web.dart
  • Integrates purchases-js (v0.15.1) for web functionality
  • Implements core RevenueCat features for web:
    • Configuration and setup
    • Customer info retrieval
    • Offerings and packages
    • User management (login, anon users)

Implementation Details

  • Uses dart:js for JavaScript interop with RevenueCat's Web SDK
  • Tries to maintain consistent API surface with other platforms
  • Maps web-specific types to match mobile models

Unsupported Features

The following features are currently stubbed:

  • Direct purchases (purchase, purchasePackage, purchaseProduct)
  • Platform-specific features (iOS/Android specific methods)
  • Subscriber attributes
  • Device identifiers

Testing

The implementation has been tested with the MagicWeather example app running on web.

This is based on @Jethro87's work in #1236

This PR adds initial support for RevenueCat's Web SDK in the Flutter
plugin. The implementation:

- Adds web platform support through `purchases_flutter_web.dart`
- Integrates purchases-js (v0.15.1) for web functionality
- Implements core RevenueCat features for web:
  - Configuration and setup
  - Customer info retrieval
  - Offerings and packages
  - User management (login, anon users)

### Implementation Details
- Uses `dart:js` for JavaScript interop with RevenueCat's Web SDK
- Tries to maintain consistent API surface with other platforms
- Maps web-specific types to match mobile models

### Unsupported Features
The following features are currently stubbed:
- Direct purchases (purchase, purchasePackage, purchaseProduct)
- Platform-specific features (iOS/Android specific methods)
- Subscriber attributes
- Device identifiers

### Testing
The implementation has been tested with the MagicWeather example app
running on web.
@tonidero tonidero added the pr:feat A new feature label Jan 7, 2025
tonidero and others added 3 commits January 8, 2025 12:21
)

This PR allows to start the purchasePackage method and display the
purchase flow. It doesn't currently have a response though.

Additionally, this performs some fixes in some mappings around to be
able to read offerings correctly from the latest purchase tester.

Purchase tester running on web:


https://github.com/user-attachments/assets/b9b51385-daba-42bd-9a9c-8f3b149a6e32

---------

Co-authored-by: Jeffrey Bunn <[email protected]>
@RevenueCat-Danger-Bot
Copy link

RevenueCat-Danger-Bot commented Jan 8, 2025

1 Warning
⚠️ This PR increases the size of the repo by more than 100.00 KB (increased by 128.23 KB).

Generated by 🚫 Danger

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pr:feat A new feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants