// Copyright 2019-2023 Tauri Programme within The Commons Conservancy // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT use serde::de::DeserializeOwned; use tauri::{ plugin::{PluginApi, PluginHandle}, AppHandle, Runtime, }; use crate::models::*; #[cfg(target_os = "android")] const PLUGIN_IDENTIFIER: &str = "{{ android_package_id }}"; #[cfg(target_os = "ios")] tauri::ios_plugin_binding!(init_plugin_{{ plugin_name }}); // initializes the Kotlin or Swift plugin classes pub fn init( _app: &AppHandle, api: PluginApi, ) -> crate::Result<{{ plugin_name_pascal_case }}> { #[cfg(target_os = "android")] let handle = api.register_android_plugin(PLUGIN_IDENTIFIER, "ExamplePlugin")?; #[cfg(target_os = "ios")] let handle = api.register_ios_plugin(init_plugin_{{ plugin_name }})?; Ok({{ plugin_name_pascal_case }}(handle)) } /// Access to the {{ plugin_name }} APIs. pub struct {{ plugin_name_pascal_case }}(PluginHandle); impl {{ plugin_name_pascal_case }} { pub fn ping(&self, payload: PingRequest) -> crate::Result { self .0 .run_mobile_plugin("ping", payload) .map_err(Into::into) } }