@capacitor/inappbrowser
InAppBrowser 插件提供一个 Web 浏览器视图,允许您从外部加载任何网页。它的行为类似于标准 Web 浏览器,对于加载不受信任的内容而不危及应用安全非常有用。它提供了三种不同的 URL 打开方式:在 WebView 中、在应用内系统浏览器中(Android 的 Custom Tabs 和 iOS 的 SFSafariViewController)以及在设备的默认浏览器中。
安装
npm install @capacitor/inappbrowser
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
});
在 WebView 中打开
import { InAppBrowser, DefaultWebViewOptions } from '@capacitor/inappbrowser';
await InAppBrowser.openInWebView({
url: "https://www.google.com",
options: DefaultWebViewOptions
});
关闭(WebView 或系统浏览器)
import { InAppBrowser } from '@capacitor/inappbrowser';
await InAppBrowser.close();
添加监听器
import { InAppBrowser } from '@capacitor/inappbrowser';
await InAppBrowser.addListener('browserClosed', () => {
console.log("browser was closed.");
});
await InAppBrowser.addListener('browserPageLoaded', () => {
console.log("browser was loaded.");
});
移除所有监听器
import { InAppBrowser } from '@capacitor/inappbrowser';
InAppBrowser.removeAllListeners();
API
openInWebView(...)
openInWebView(model: OpenInWebViewParameterModel) => Promise<void>
在您的移动应用中使用自定义 WebView 打开给定 URL 的 Web 内容。
| 参数 | 类型 | 描述 |
|---|---|---|
model | | 在 WebView 中打开 URL 的参数 |
openInSystemBrowser(...)
openInSystemBrowser(model: OpenInSystemBrowserParameterModel) => Promise<void>
在您的移动应用中使用系统浏览器打开给定 URL 的 Web 内容,在 iOS 上使用 SafariViewController, 在 Android 上使用 Custom Tabs。
| 参数 | 类型 | 描述 |
|---|---|---|
model | | 在系统浏览器中打开 URL 的参数 |
openInExternalBrowser(...)
openInExternalBrowser(model: OpenInDefaultParameterModel) => Promise<void>