fix: update openExternalUrl to use invoke for Tauri command and add fallback for opener plugin
This commit is contained in:
@@ -9,15 +9,23 @@ export const openExternalUrl = async (url: string): Promise<void> => {
|
||||
// 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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user