跳到主要内容
版本:v7

@capacitor/inappbrowser

InAppBrowser 插件提供了一个 Web 浏览器视图,允许你在应用中外部加载任何网页。它表现为一个标准的 Web 浏览器,对于加载不受信任的内容而不危及应用程序安全性非常有用。它提供了三种打开 URL 的方式:在 WebView 中、在应用内系统浏览器中(Android 的 Custom Tabs 和 iOS 的 SFSafariViewController)以及在设备的默认浏览器中。

安装​

npm install @capacitor/inappbrowser@latest-7
npx cap sync

支持的平台​

  • iOS
  • Android

Android​

InAppBrowser 插件要求最低 Android SDK 目标为 26。这高于 Capacitor 应用程序附带的默认值。你可以在 android/variables.gradle 文件中更新此值。

ext {
minSdkVersion = 26
}

使用示例​

在外部浏览器中打开​

import { InAppBrowser } from '@capacitor/inappbrowser';
await InAppBrowser.openInExternalBrowser({
url: "https://www.google.com"
});

在系统浏览器中打开(Android 的 Custom Tabs,iOS 的 SFSafariViewController)​

import { InAppBrowser, DefaultSystemBrowserOptions } from '@capacitor/inappbrowser';
await InAppBrowser.openInSystemBrowser({
url: "https://www.google.com",
options: DefaultSystemBrowserOptions
});

在 Web View 中打开​

import { InAppBrowser, DefaultWebViewOptions } from '@capacitor/inappbrowser';
await InAppBrowser.openInWebView({
url: "https://www.google.com",
options: DefaultWebViewOptions
});

关闭(Web View 或系统浏览器)​

import { InAppBrowser } from '@capacitor/inappbrowser';
await InAppBrowser.close();

添加监听器​

import { InAppBrowser } from '@capacitor/inappbrowser';
await InAppBrowser.addListener('browserClosed', () => {
console.log("浏览器已关闭。");
});

await InAppBrowser.addListener('browserPageNavigationCompleted', (data) => {
console.log("浏览器页面导航已完成。" + data.url);
});

await InAppBrowser.addListener('browserPageLoaded', () => {
console.log("浏览器已加载。");
});

移除所有监听器​

import { InAppBrowser } from '@capacitor/inappbrowser';
InAppBrowser.removeAllListeners();

API​

openInWebView(...)​

openInWebView(model: OpenInWebViewParameterModel) => Promise<void>

在移动应用中使用自定义 Web View 打开给定 URL 的 Web 内容。

参数类型描述
model
OpenInWebViewParameterModel
在 Web View 中打开 URL 的参数

openInSystemBrowser(...)​

openInSystemBrowser(model: OpenInSystemBrowserParameterModel) => Promise<void>

在移动应用中使用 SafariViewController(iOS)或 Custom Tabs(Android)打开给定 URL 的 Web 内容。

参数类型描述
model
OpenInSystemBrowserParameterModel
在系统浏览器中打开 URL 的参数

openInExternalBrowser(...)​

openInExternalBrowser(model: OpenInDefaultParameterModel) => Promise<void>

在移动应用外部的独立浏览器中打开给定 URL 的 Web 内容。

参数类型描述
model
OpenInDefaultParameterModel
在外部浏览器中打开 URL 的参数

close()​

close() => Promise<void>

关闭当前活动的浏览器。可用于关闭通过 openInSystemBrowser 或 openInWebView 操作启动的浏览器。


addListener('browserClosed' | 'browserPageLoaded', ...)​

addListener(eventName: 'browserClosed' | 'browserPageLoaded', listenerFunc: () => void) => Promise<PluginListenerHandle>

为指定的浏览器事件添加监听器,不返回数据。

参数类型描述
eventName'browserClosed' | 'browserPageLoaded'要监听的浏览器事件名称:'browserClosed' 或 'browserPageLoaded'。
listenerFunc() => void事件发生时要调用的函数。

返回值:

Promise<PluginListenerHandle>


addListener('browserPageNavigationCompleted', ...)​

addListener(eventName: 'browserPageNavigationCompleted', listenerFunc: (data: BrowserPageNavigationCompletedEventData) => void) => Promise<PluginListenerHandle>

为指定的浏览器事件添加监听器,该事件会接收数据。

参数类型描述
eventName'browserPageNavigationCompleted'要监听的浏览器事件名称:'browserPageNavigationCompleted'。仅适用于 openInWebView。
listenerFunc
(data: BrowserPageNavigationCompletedEventData) => void
事件发生时要调用的函数。

返回值:

Promise<PluginListenerHandle>


removeAllListeners()​

removeAllListeners() => void

移除所有浏览器事件的监听器。


接口​

OpenInWebViewParameterModel​

定义在 Web View 中打开 URL 的选项。

属性类型描述
options
WebViewOptions
包含一些要应用到 Web View 的配置的结构体。
customHeaders{ [key: string]: string; }随请求发送的自定义标头映射。

WebViewOptions​

属性类型描述
showURLboolean在 Web View 上显示 URL。
showToolbarboolean在 Web View 上显示工具栏。
clearCacheboolean在打开新窗口前清除 Web View 的 Cookie 缓存。
`clearSessionCacheboolean在打开新窗口前清除会话 Cookie 缓存。
mediaPlaybackRequiresUserActionboolean阻止 HTML5 音频或视频自动播放。
closeButtonTextstring设置 Web View 上关闭按钮显示的文本。
toolbarPosition
ToolbarPosition
设置工具栏在 Web View 上的显示位置。
showNavigationButtonsboolean显示导航按钮。
leftToRightboolean交换导航按钮和关闭按钮的位置。
customWebViewUserAgentstring | null设置打开 Web View 时使用的自定义 user agent。如果为空或未设置,则忽略此参数。
android
AndroidWebViewOptions
Android 特定的 Web View 选项。
iOS
iOSWebViewOptions
iOS 特定的 Web View 选项。

AndroidWebViewOptions​

属性类型描述
allowZoomboolean显示 Android 浏览器的缩放控件。
hardwareBackboolean使用硬件返回按钮在 Web View 的历史记录中向后导航。如果没有上一页,Web View 将关闭。
pauseMediaboolean使 Web View 随应用暂停/恢复,以停止后台音频。

iOSWebViewOptions​

属性类型描述
allowOverScrollboolean打开 Web View 的弹性滚动属性。
enableViewportScaleboolean阻止通过 meta 标签进行视口缩放。
allowInLineMediaPlaybackboolean允许内联 HTML5 媒体播放,在浏览器窗口内显示而非设备特定的播放界面。注意:HTML 的 video 元素还必须包含 webkit-playsinline 属性。
surpressIncrementalRenderingboolean等待所有新的视图内容接收完毕后再渲染。
viewStyle
iOSViewStyle
设置 Web View 的呈现样式。
animationEffect
iOSAnimation
设置 Web View 的过渡样式。
allowsBackForwardNavigationGesturesboolean启用 Web View 中的前进和后退滑动手势。

OpenInSystemBrowserParameterModel​

定义在系统浏览器中打开 URL 的选项。

属性类型描述
options
SystemBrowserOptions
包含一些要应用到系统浏览器的配置的结构体。

SystemBrowserOptions​

属性类型描述
android
AndroidSystemBrowserOptions
Android 特定的系统浏览器选项。
iOS
iOSSystemBrowserOptions
iOS 特定的系统浏览器选项。

AndroidSystemBrowserOptions​

属性类型描述
showTitleboolean启用标题显示。
hideToolbarOnScrollboolean滚动时隐藏工具栏。
viewStyle
AndroidViewStyle
设置 Custom Tabs 的呈现样式。
bottomSheetOptions
AndroidBottomSheet
当 viewStyle 选择底部弹出层时设置其选项。如果 viewStyle 为 FULL_SCREEN,则忽略此项。
startAnimation
AndroidAnimation
设置浏览器出现时的开始动画。
exitAnimation
AndroidAnimation
设置浏览器消失时的退出动画。

AndroidBottomSheet​

属性类型描述
heightnumber设置底部弹出层的高度(以像素为单位)。Custom Tabs 会将底部高度至少设置为屏幕的 50%。如果未传递值,则默认为最小值。
isFixedboolean设置底部弹出层是否固定。

iOSSystemBrowserOptions​

属性类型描述
closeButtonText
DismissStyle
设置用作关闭按钮标题的文本。
viewStyle
iOSViewStyle
设置 SafariViewController 的呈现样式。
animationEffect
iOSAnimation
设置 SafariViewController 的过渡样式。
enableBarsCollapsingboolean启用向下滚动时折叠栏。
enableReadersModeboolean启用阅读器模式。

OpenInDefaultParameterModel​

定义在外部浏览器中打开 URL 的选项,并供其他方法使用。

属性类型描述
urlstring要打开的 URL。必须包含 'http' 或 'https' 作为协议前缀。

PluginListenerHandle​

属性类型
remove() => Promise<void>

BrowserPageNavigationCompletedEventData​

定义 'browserPageNavigationCompleted' 事件的数据。

属性类型描述
urlstring已加载页面的 URL。

枚举​

ToolbarPosition​

成员
TOP
BOTTOM

iOSViewStyle​

成员
PAGE_SHEET
FORM_SHEET
FULL_SCREEN

iOSAnimation​

成员
FLIP_HORIZONTAL
CROSS_DISSOLVE
COVER_VERTICAL

AndroidViewStyle​

成员
BOTTOM_SHEET
FULL_SCREEN

AndroidAnimation​

成员
FADE_IN
FADE_OUT
SLIDE_IN_LEFT
SLIDE_OUT_RIGHT

DismissStyle​

成员
CLOSE
CANCEL
DONE