|
1
|
use serde::de::DeserializeOwned; |
|
2
|
use tauri::{ |
|
3
|
plugin::{PluginApi, PluginHandle}, |
|
4
|
AppHandle, Runtime, |
|
5
|
}; |
|
6
|
|
|
7
|
use crate::models::*; |
|
8
|
|
|
9
|
#[cfg(target_os = "ios")] |
|
10
|
tauri::ios_plugin_binding!(init_plugin_ios_window); |
|
11
|
|
|
12
|
// initializes the Kotlin or Swift plugin classes |
|
13
|
pub fn init<R: Runtime, C: DeserializeOwned>( |
|
14
|
_app: &AppHandle<R>, |
|
15
|
api: PluginApi<R, C>, |
|
16
|
) -> crate::Result<TauriPluginIosWindow<R>> { |
|
17
|
#[cfg(target_os = "ios")] |
|
18
|
let handle = api.register_ios_plugin(init_plugin_ios_window)?; |
|
19
|
Ok(TauriPluginIosWindow(handle)) |
|
20
|
} |
|
21
|
|
|
22
|
/// Access to the tauri-plugin-ios-window APIs. |
|
23
|
pub struct TauriPluginIosWindow<R: Runtime>(PluginHandle<R>); |
|
24
|
|
|
25
|
impl<R: Runtime> TauriPluginIosWindow<R> { |
|
26
|
pub fn open(&self, payload: OpenRequest) -> crate::Result<()> { |
|
27
|
self.0 |
|
28
|
.run_mobile_plugin("open", payload) |
|
29
|
.map_err(Into::into) |
|
30
|
} |
|
31
|
|
|
32
|
pub fn close(&self) -> crate::Result<()> { |
|
33
|
self.0 |
|
34
|
.run_mobile_plugin::<()>("close", ()) |
|
35
|
.map_err(Into::into) |
|
36
|
} |
|
37
|
} |