跳过主要内容
@capgo/capacitor-inappbrowser UI & 系统 Renamed from @capgo/inappbrowser to @capgo/capacitor-inappbrowser. 重命名 开源

In App 浏览器 Capacitor 插件

以本机 UI 层次、私有会话、下载、代理和消息开启管理的内嵌 WebViews

安装

bun add @capgo/capacitor-inappbrowser bunx cap sync
npm、pnpm 或 yarn
  • npm install @capgo/capacitor-inappbrowser
  • pnpm add @capgo/capacitor-inappbrowser
  • yarn add @capgo/capacitor-inappbrowser

指南

如何在 Capacitor 中使用 In App 浏览器

在设备上测试

下载 Capgo 应用,扫描二维码 code。

In App 浏览器插件预览二维码 code

使用 @capgo/capacitor-inappbrowser

@capgo/capacitor-inappbrowser 打开来自 Capacitor 应用的外部网页内容。使用 open() 适用于平台浏览器表面,或 openWebView() 当您的应用需要一个受管理的本机 WebView,具有自定义大小、工具栏、消息、脚本、下载、代理、弹出控制、私有存储或 Ionic UI 层叠在页面上时

安装

npm install @capgo/capacitor-inappbrowser
npx cap sync

此插件暴露的内容

  • 系统浏览器流程,使用 Chrome 自定义标签页在 Android 和 SFSafariViewController 在 iOS 上。
  • 可调整大小、隐藏、显示、在 Capacitor 应用程序后面移动并将其带回前面的管理 WebViews。
  • 点击、触摸和滚动的前进, dispatchInputEvent() 当应用 UI 位于浏览器上时。
  • 部分屏幕浏览器,外部点击在 Android 和 iOS 上的本机 WebView 框架之外的触摸将传递给 Capacitor 应用程序。
  • cookie、缓存和完整的浏览数据清理, persistWebViewData, clearCookies, clearAllCookies, clearCache,和 clearAllBrowsingData.
  • 应用与页面的通信, postMessage(),页面与应用的通信 window.mobileApp.postMessage(...)下载处理、原生代理规则、弹出控制、Google Pay 支持 executeScript().
  • 链接处理、以及隐藏的可预加载浏览器实例 _blank 常见用例

将 App UI 置于 Live 浏览器之上

使用此功能进行结算覆盖层、浏览器支持的支付流程、引导式支持流程或任何需要 Ionic 控件在 live 网页内容之上保持可见的特性。

import { InAppBrowser } from '@capgo/capacitor-inappbrowser';

const { id } = await InAppBrowser.openWebView({
  url: 'https://example.com/checkout',
  toBack: true,
  transparentBackground: true,
});

await InAppBrowser.dispatchInputEvent({
  id,
  type: 'click',
  x: 160,
  y: 420,
});

await InAppBrowser.bringToFront({ id });

保持 App 点击可用性,围绕浏览器sheet

自定义大小的浏览器仅捕获其框架内的触摸。剩余可见的 App 区域在 Android 和 iOS 上保持可点击。

const { id } = await InAppBrowser.openWebView({
  url: 'https://example.com/offers',
  height: window.innerHeight - 200,
  y: 0,
});

await InAppBrowser.updateDimensions({ id, height: window.innerHeight });

避免持久的 Web 会话

使用此功能进行账户切换、结算测试、支持模拟或认证流程,其中 cookie、缓存、本地存储和 IndexedDB 不应超过所需时间。

const { id } = await InAppBrowser.openWebView({
  url: 'https://example.com/login',
  persistWebViewData: false,
});

await InAppBrowser.clearAllBrowsingData();
await InAppBrowser.close({ id });

预加载和交换多个 WebViews

隐藏的实例保持其状态可用,同时避免阻塞 App 触摸的原生覆盖层

const first = await InAppBrowser.openWebView({ url: 'https://example.com/a', hidden: true });
const second = await InAppBrowser.openWebView({ url: 'https://example.com/b', hidden: true });

await InAppBrowser.show({ id: first.id });
await InAppBrowser.hide({ id: first.id });
await InAppBrowser.show({ id: second.id });

常见用例

嵌入高级Web应用

const { id } = await InAppBrowser.openWebView({
  url: 'https://example.com/portal',
  handleDownloads: true,
  openBlankTargetInWebView: true,
  hiddenPopupWindow: true,
  outboundProxyRules: [
    {
      urlRegex: '^https://example\\.com/api/',
      action: 'delegateToJs',
    },
  ],
});

await InAppBrowser.postMessage({
  id,
  detail: { source: 'app', action: 'refresh' },
});

使用此模式创建文档门户、上传流程、支持台、视频通话、Google Pay页面或需要在应用外壳中控制的交互式Web应用。

完整参考

继续使用@capgo/capacitor-inappbrowser

如果您正在使用 使用@capgo/capacitor-inappbrowser 来规划原生插件工作,连接它与 @capgo/capacitor-inappbrowser 以获取@capgo/capacitor-inappbrowser的实现细节 开始使用 为开始使用中的实现细节 Capgo 插件目录 为Capgo 插件目录中的产品工作流程 Capacitor 由 Capgo 提供的插件 为Capacitor 由 Capgo 提供的插件中的实现细节 添加或更新插件 为添加或更新插件中的实现细节

FAQ

在App浏览器插件FAQ

如何在Capacitor应用中安装In App Browser插件?

运行“bun add @capgo/capacitor-inapp浏览器”(或“npm install @capgo/capacitor-inapp浏览器”),然后运行“bunx cap sync”,使iOS和Android项目捕获native code。从“@capgo/capacitor-inapp浏览器”中导入您的应用code。

是否@capgo/capacitor-inapp浏览器与React、Vue和Angular兼容?

是。 In App Browser是一个Capacitor包,因此它与任何在Capacitor内运行的Web框架兼容,包括Ionic、React、Vue、Angular、Svelte和普通JavaScript。

哪个Capacitor版本支持@capgo/capacitor-inapp浏览器?

Capgo插件遵循Capacitor的主要版本:使用与Capacitor主要版本匹配的插件主要版本(例如插件v8与Capacitor 8)。在GitHub README中列出的兼容性表格列出了维护的版本。

是否@capgo/capacitor-inappbrowser 免费且开源?

是。源码code在GitHub上公开,https://github.com/Cap-go/capacitor-inappbrowser/,并且可以从npm免费安装。欢迎bug报告和pull请求。

是否可以在不经过App Store审查的情况下更新code?

code使用In App Browser时,安装或升级插件会改变原生code,因此需要重新构建App Store。之后,JavaScript、HTML和CSS调用插件的更改可以立即通过Capgo实时更新。

不必等待应用审核就可以将 In App Browser 的更新推送给用户

在您的商店构建中安装插件后,Capgo即刻更新将您的JavaScript、HTML和CSS更改推送给用户。

使用Capgo