@capacitor/inappbrowser
InAppBrowser 插件提供了一个网页浏览器视图,允许你在应用外部加载任意网页。它的行为类似于标准网页浏览器,适用于加载不受信任的内容而不会危及应用安全。它提供了三种不同的 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
});
在 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 视图打开指定 URL 的网页内容。
| 参数 | 类型 | 描述 |
|---|---|---|
model | | 在 Web 视图中打开 URL 所需的参数 |
openInSystemBrowser(...)
openInSystemBrowser(model: OpenInSystemBrowserParameterModel) => Promise<void>
在移动应用中使用 SafariViewController(iOS)和 Custom Tabs(Android)打开指定 URL 的网页内容。
| 参数 | 类型 | 描述 |
|---|---|---|
model | | 在系统浏览器中打开 URL 所需的参数 |
openInExternalBrowser(...)
openInExternalBrowser(model: OpenInDefaultParameterModel) => Promise<void>