Skip to main content

tauri_plugin_apple_iap/
lib.rs

1use tauri::{
2    plugin::{Builder, TauriPlugin},
3    Runtime,
4};
5
6#[cfg(target_os = "macos")]
7mod models;
8
9#[cfg(target_os = "macos")]
10mod macos;
11
12#[cfg(target_os = "ios")]
13tauri::ios_plugin_binding!(init_plugin_apple_iap);
14
15pub fn init<R: Runtime>() -> TauriPlugin<R> {
16    #[allow(unused_mut)]
17    let mut builder = Builder::new("apple-iap");
18
19    #[cfg(target_os = "macos")]
20    {
21        builder = builder.invoke_handler(tauri::generate_handler![
22            macos::list_products,
23            macos::purchase_product,
24            macos::finish_transaction,
25            macos::sync_purchases,
26            macos::current_entitlements
27        ]);
28    }
29
30    builder
31        .setup(|_app, _api| {
32            #[cfg(target_os = "ios")]
33            {
34                let _ = _api.register_ios_plugin(init_plugin_apple_iap)?;
35            }
36            Ok(())
37        })
38        .build()
39}