diff --git a/src/app/utils/tauri.ts b/src/app/utils/tauri.ts index c57ff74..b43e879 100644 --- a/src/app/utils/tauri.ts +++ b/src/app/utils/tauri.ts @@ -9,15 +9,23 @@ export const openExternalUrl = async (url: string): Promise => { // Only run this in Tauri builds if (typeof window !== 'undefined' && (window as any).__TAURI__) { try { - console.log('[openExternalUrl] importing opener plugin...'); - const { openUrl } = await import('@tauri-apps/plugin-opener'); - console.log('[openExternalUrl] calling openUrl...'); - await openUrl(url); - console.log('[openExternalUrl] openUrl succeeded'); + console.log('[openExternalUrl] invoking open_external_url command...'); + const { invoke } = await import('@tauri-apps/api/core'); + await invoke('open_external_url', { url }); + console.log('[openExternalUrl] command succeeded'); return; } catch (err) { - console.error('[openExternalUrl] Tauri opener.openUrl failed:', err); - // Don't fall back to window.open in Tauri - it won't work with localhost plugin + console.error('[openExternalUrl] Tauri command failed:', err); + // Try the plugin as fallback (for mobile) + try { + console.log('[openExternalUrl] trying opener plugin fallback...'); + const { openUrl } = await import('@tauri-apps/plugin-opener'); + await openUrl(url); + console.log('[openExternalUrl] plugin fallback succeeded'); + return; + } catch (pluginErr) { + console.error('[openExternalUrl] plugin fallback also failed:', pluginErr); + } return; } }