Skip to content

[bug] shell::open opens in‑app webview on Android/iOS with no navigation controls, trapping users #3401

@SleekGeek-254

Description

@SleekGeek-254

Describe the bug

When calling open(url) or open(url, 'chromium') from @tauri-apps/plugin-shell on mobile (Android and iOS), the link opens inside an in‑app webview overlay instead of the system browser. This webview has no back button, address bar, or close controls. The system back gesture dismisses the entire app rather than navigating back, leaving the user stuck on the external page with no way to return to the app.

Reproduction

  1. Create a Tauri v2 mobile project with shell:allow-open permission granted in tauri.conf.json.
  2. In a React component, call:
    import { open } from '@tauri-apps/plugin-shell';
    await open('https://example.com');
  3. Build and run on an Android device/emulator or iOS device.
  4. Click the link. The in‑app webview appears.
  5. Attempt to return to the app using the system back gesture → app closes completely.

Expected behavior

Expected behavior

Links should open in the device's default external browser (Chrome, Safari, etc.) when { target: '_blank' } or a browser‑specific target is specified, allowing the user to easily switch back to the app.

Actual behavior

  • The URL loads in an in‑app webview that overlays the entire screen.
  • No back button or navigation UI is present.
  • Swiping back closes the entire Tauri application instead of dismissing the webview.
  • This happens regardless of whether 'chromium', 'safari', or no second argument is passed

Full tauri info output

npm run tauri info

> just-dare@0.0.0 tauri
> tauri info


[✔] Environment
    - OS: Windows 10.0.26200 x86_64 (X64)
    ✔ WebView2: 147.0.3912.72
    ✔ MSVC: Visual Studio Community 2022
    ✔ rustc: 1.93.1 (01f6ddf75 2026-02-11)
    ✔ cargo: 1.93.1 (083ac5135 2025-12-15)
    ✔ rustup: 1.28.2 (e4f3ad6f8 2025-04-28)
    ✔ Rust toolchain: stable-x86_64-pc-windows-msvc (default)
    - node: 24.13.0
    - npm: 11.12.1

[-] Packages
    - tauri 🦀: 2.10.3
    - tauri-build 🦀: 2.5.6
    - wry 🦀: 0.54.2, (outdated, latest: 0.55.0)
    - tao 🦀: 0.34.8
    - tauri-cli 🦀: 2.5.0 (outdated, latest: 2.10.1)
    - @tauri-apps/api : 2.10.1
    - @tauri-apps/cli : 2.5.0 (outdated, latest: 2.10.1)

[-] Plugins
    - tauri-plugin-os 🦀: 2.3.2
    - @tauri-apps/plugin-os : 2.3.2
    - tauri-plugin-opener 🦀: 2.5.3
    - @tauri-apps/plugin-opener : 2.5.3
    - tauri-plugin-notification 🦀: 2.2.2, (outdated, latest: 2.3.3)
    - @tauri-apps/plugin-notification : 2.2.2 (outdated, latest: 2.3.3)
    - tauri-plugin-barcode-scanner 🦀: 2.4.4
    - @tauri-apps/plugin-barcode-scanner : 2.4.4
    - tauri-plugin-store 🦀: 2.2.0, (outdated, latest: 2.4.2)
    - @tauri-apps/plugin-store : 2.2.0 (outdated, latest: 2.4.2)
    - tauri-plugin-dialog 🦀: 2.7.0
    - @tauri-apps/plugin-dialog : 2.7.0
    - tauri-plugin-shell 🦀: 2.3.5
    - @tauri-apps/plugin-shell : 2.3.5
    - tauri-plugin-clipboard-manager 🦀: 2.2.2, (outdated, latest: 2.3.2)
    - @tauri-apps/plugin-clipboard-manager : 2.2.2 (outdated, latest: 2.3.2)
    - tauri-plugin-log 🦀: 2.4.0, (outdated, latest: 2.8.0)
    - @tauri-apps/plugin-log : 2.4.0 (outdated, latest: 2.8.0)
    - tauri-plugin-fs 🦀: 2.5.0
    - @tauri-apps/plugin-fs : not installed!

[-] App
    - build-type: bundle
    - CSP: default-src 'self'; img-src 'self' data: blob: https://ipfs.io; media-src 'self' data: blob:; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; connect-src 'self' ipc: http://ipc.localhost https://ipc.localhost https://tauri.localhost https://ipfs.io; camera 'self'; microphone 'self'     
    - frontendDist: ../dist
    - devUrl: http://127.0.0.1:1460/
    - framework: React
    - bundler: Vite

Stack trace


Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions