# @capacitor/browser The Browser API provides the ability to open an in-app browser and subscribe to browser events. On iOS, this uses `SFSafariViewController` and is compliant with leading OAuth service in-app-browser requirements. ## Install ```bash npm install @capacitor/browser@latest-6 npx cap sync ``` ## Android ### Variables This plugin will use the following project variables (defined in your app's `variables.gradle` file): - `androidxBrowserVersion`: version of `androidx.browser:browser` (default: `1.7.0`) ## Example ```typescript import { Browser } from '@capacitor/browser'; const openCapacitorSite = async () => { await Browser.open({ url: 'http://capacitorjs.com/' }); }; ``` ## API * [`open(...)`](#open) * [`close()`](#close) * [`addListener('browserFinished', ...)`](#addlistenerbrowserfinished-) * [`addListener('browserPageLoaded', ...)`](#addlistenerbrowserpageloaded-) * [`removeAllListeners()`](#removealllisteners) * [Interfaces](#interfaces) ### open(...) ```typescript open(options: OpenOptions) => Promise ``` Open a page with the specified options. | Param | Type | | ------------- | --------------------------------------------------- | | **`options`** | OpenOptions | **Since:** 1.0.0 -------------------- ### close() ```typescript close() => Promise ``` Web & iOS only: Close an open browser window. No-op on other platforms. **Since:** 1.0.0 -------------------- ### addListener('browserFinished', ...) ```typescript addListener(eventName: 'browserFinished', listenerFunc: () => void) => Promise ``` Android & iOS only: Listen for the browser finished event. It fires when the Browser is closed by the user. | Param | Type | | ------------------ | ------------------------------ | | **`eventName`** | 'browserFinished' | | **`listenerFunc`** | () => void | **Returns:** Promise<PluginListenerHandle> **Since:** 1.0.0 -------------------- ### addListener('browserPageLoaded', ...) ```typescript addListener(eventName: 'browserPageLoaded', listenerFunc: () => void) => Promise ``` Android & iOS only: Listen for the page loaded event. It's only fired when the URL passed to open method finish loading. It is not invoked for any subsequent page loads. | Param | Type | | ------------------ | -------------------------------- | | **`eventName`** | 'browserPageLoaded' | | **`listenerFunc`** | () => void | **Returns:** Promise<PluginListenerHandle> **Since:** 1.0.0 -------------------- ### removeAllListeners() ```typescript removeAllListeners() => Promise ``` Remove all native listeners for this plugin. **Since:** 1.0.0 -------------------- ### Interfaces #### OpenOptions Represents the options passed to `open`. | Prop | Type | Description | Since | | ----------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ----- | | **`url`** | string | The URL to which the browser is opened. | 1.0.0 | | **`windowName`** | string | Web only: Optional target for browser open. Follows the `target` property for window.open. Defaults to _blank. Ignored on other platforms. | 1.0.0 | | **`toolbarColor`** | string | A hex color to which the toolbar color is set. | 1.0.0 | | **`presentationStyle`** | 'fullscreen' \| 'popover' | iOS only: The presentation style of the browser. Defaults to fullscreen. Ignored on other platforms. | 1.0.0 | | **`width`** | number | iOS only: The width the browser when using presentationStyle 'popover' on iPads. Ignored on other platforms. | 4.0.0 | | **`height`** | number | iOS only: The height the browser when using presentationStyle 'popover' on iPads. Ignored on other platforms. | 4.0.0 | #### PluginListenerHandle | Prop | Type | | ------------ | ----------------------------------------- | | **`remove`** | () => Promise<void> |