tauri-plugin-pliap
v1.0.6
Published
Tauri plugin for in-app purchases and subscriptions
Maintainers
Readme
Tauri Plugin PLIAP (DEPRECATE, NO LONGER MAINTAINED AND DEVELOPMENT)
A Tauri plugin for handling in-app purchases and subscriptions across desktop and mobile platforms.
Features
- ✅ Cross-platform support: Desktop (Windows, macOS, Linux) and Mobile (Android, iOS)
- ✅ In-app purchases: One-time purchases with Google Play Billing and App Store
- ✅ Subscriptions: Recurring subscriptions with multiple base plans
- ✅ Product management: Query product information and pricing
- ✅ Purchase tracking: Get all user purchases and consumption status
- ✅ TypeScript support: Full type definitions for the JavaScript API
Platform Support
| Platform | Status | Notes | | -------- | ------- | ---------------------- | | Android | ✅ Full | Google Play Billing v6 |
ℹ️ Hiện tại plugin chỉ hỗ trợ Android. Hỗ trợ iOS và Desktop sẽ được cập nhật trong tương lai.
Installation
Rust (Cargo.toml)
[dependencies]
tauri-plugin-pliap = "1.0.6"JavaScript/TypeScript
npm install tauri-plugin-pliap
# or
yarn add tauri-plugin-pliap
# or
pnpm add tauri-plugin-pliapQuick Start
1. Register the plugin
// src-tauri/src/main.rs
fn main() {
tauri::Builder::default()
.plugin(tauri_plugin_pliap::init())
.run(tauri::generate_context!())
.expect("error while running tauri application");
}2. Configure permissions
// src-tauri/capabilities/default.json
{
"permissions": [
"core:default",
"pliap:allow-ping",
"pliap:allow-create-purchase",
"pliap:allow-create-purchase-subscription",
"pliap:allow-consume",
"pliap:allow-get-product",
"pliap:allow-get-all-purchases",
"pliap:allow-get-subscription",
"pliap:allow-get-list-subscription"
]
}3. Use in your app
import { createPurchase, getProduct } from "tauri-plugin-pliap";
// Create a purchase
const success = await createPurchase("product_id_123");
// Get product info
const product = await getProduct("product_id_123");
console.log("Product:", product.title, "Price:", product.price);API Reference
Core Functions
ping(value: string)- Test plugin connectioncreatePurchase(productId: string)- Create one-time purchasecreatePurchaseSubscription(options)- Create subscriptionconsume(purchaseToken: string)- Consume a purchasegetProduct(productId: string)- Get product informationgetAllPurchases()- Get all user purchasesgetSubscription(productId: string)- Get subscription infogetListSubscription(productIds: string[])- Get multiple subscriptions
Key Types
interface BillingProduct {
productId: string;
title: string;
description: string;
price: string;
productType: string;
}
interface SubscriptionPurchaseResponse {
success: boolean;
purchaseToken?: string;
orderId?: string;
isAutoRenewing?: boolean;
}Platform Setup
Android
Add to AndroidManifest.xml:
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.INTERNET" />iOS
Ensure your app has:
- Valid App Store Connect configuration
- Product IDs configured in App Store Connect
- Proper code signing and provisioning profiles
Examples
See the examples/tauri-app directory for a complete working example.
Contributing
Contributions are welcome! Please read our Contributing Guide before submitting a pull request.
License
MIT License - see LICENSE file for details.
Support
Publish
cargo login
Publish test, not upload: cargo publish --dry-run
cargo publish
