{"_id":"@capacitor-ohos/browser","_rev":"2-7ab8d0dc09efe666d23941d40819c705","name":"@capacitor-ohos/browser","dist-tags":{"latest":"8.0.2"},"versions":{"8.0.1":{"name":"@capacitor-ohos/browser","version":"8.0.1","keywords":["capacitor","plugin","native"],"author":{"url":"Group","name":"Huawei Device Co., Ltd and iSoftStone Information Technology"},"license":"MIT","_id":"@capacitor-ohos/browser@8.0.1","maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"}],"bugs":{"url":"https://gitcode.com/CPF-Ionic/capacitor-browser/issues"},"dist":{"shasum":"f89bac2c917d15e6b614fbf21387f9c4cca41409","tarball":"https://registry.npmjs.org/@capacitor-ohos/browser/-/browser-8.0.1.tgz","fileCount":10,"integrity":"sha512-f8p8I0qjB+dFClKYUckNq5cybCJINLB7+ex2dVYlt8mj0ULWjmxoh034fosY+OUy8zEVSk6CIkvDmHiXihhEfg==","signatures":[{"sig":"MEYCIQC57swn1j6LZLCoejtPywc/Ya4mCRt4RHAv66VzpG3EegIhAPchq/R/BYHtTqkTD1clL2YTa1e20ucl+IYWlVcQY1Ej","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34876},"gitHead":"21bb3a6a65ed3cd207c16aec763c6f38a88543d8","_npmUser":{"name":"luqi_tan","email":"295099422@qq.com"},"capacitor":{"id":"@capacitor/browser","platforms":["openharmony"]},"repository":{"url":"gitcode:CPF-Ionic/capacitor-browser","type":"git"},"_npmVersion":"10.5.1","description":"The Browser API provides the ability to open an in-app browser and subscribe to browser events.","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/browser_8.0.1_1777539035144_0.47373328819547655","host":"s3://npm-registry-packages-npm-production"}},"8.0.2":{"name":"@capacitor-ohos/browser","version":"8.0.2","description":"The Browser API provides the ability to open an in-app browser and subscribe to browser events.","capacitor":{"id":"@capacitor/browser","platforms":["openharmony"]},"repository":{"type":"git","url":"gitcode:CPF-Ionic/capacitor-browser"},"bugs":{"url":"https://gitcode.com/CPF-Ionic/capacitor-browser/issues"},"keywords":["capacitor","plugin","native"],"author":{"name":"Huawei Device Co., Ltd and iSoftStone Information Technology","url":"Group"},"license":"MIT","_id":"@capacitor-ohos/browser@8.0.2","gitHead":"d03ce09b95a9611fee6299ee38dd6da219e0df27","_nodeVersion":"22.0.0","_npmVersion":"10.5.1","dist":{"integrity":"sha512-cobKgfOEMGhKJU+iTv0KQUrxMeVAhGPhXhLy0ACUE45ev3zsJJY0oQcBrSmWe+Gh5O6hEgk2UyCSmKr5lEs9xA==","shasum":"399720b780f4713f42e34ffd01c4a58abe0a1090","tarball":"https://registry.npmjs.org/@capacitor-ohos/browser/-/browser-8.0.2.tgz","fileCount":10,"unpackedSize":34900,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD6ptxXWfOyOu2KSoDC3R8FDToAWyYBkWuXR9gXMV0htAIhAJ0WfbuYYc7dT4RCxtPoHipSCkEiF2q6n6SUIoqQQbI9"}]},"_npmUser":{"name":"luqi_tan","email":"295099422@qq.com"},"directories":{},"maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/browser_8.0.2_1784789252778_0.5134971808640758"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-30T08:50:35.048Z","modified":"2026-07-23T06:47:33.090Z","8.0.1":"2026-04-30T08:50:35.316Z","8.0.2":"2026-07-23T06:47:32.937Z"},"bugs":{"url":"https://gitcode.com/CPF-Ionic/capacitor-browser/issues"},"author":{"name":"Huawei Device Co., Ltd and iSoftStone Information Technology","url":"Group"},"license":"MIT","keywords":["capacitor","plugin","native"],"repository":{"type":"git","url":"gitcode:CPF-Ionic/capacitor-browser"},"description":"The Browser API provides the ability to open an in-app browser and subscribe to browser events.","maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"}],"readme":"# <center>@capacitor/browser</center>\r\n[![zh-CN](https://img.shields.io/badge/lang-中文-blue.svg)](README.md)\r\n[![en](https://img.shields.io/badge/lang-English-blue.svg)](README.en.md)\r\n\r\n本项目基于 [@capacitor/browser@8.0.0](https://www.npmjs.com/package/@capacitor/browser/v/8.0.0) 开发。\r\n\r\n## 简介\r\n\r\n@capacitor/browser是capacitor生态系统中的核心插件，提供在应用内唤起系统浏览器打开指定网络地址的能力，为跨平台应用开发提供浏览器调用适配能力。插件兼容Android、iOS等主流移动平台及浏览器环境，本文档仅说明在OpenHarmony环境下的使用情况。\r\n\r\nAPI支持唤起系统浏览器加载指定URL、监听浏览器状态、移除事件监听等功能，调用便捷无需等待就绪事件。\r\n\r\n## 支持平台\r\n\r\n- **OpenHarmony**：5.0+\r\n\r\n## 下载安装\r\n\r\n通过命令行或手动引入即可快速安装插件，支持从npm仓库获取。\r\n\r\n### 命令行安装（推荐）\r\n\r\n安装hionic CLI：\r\n\r\n```bash\r\nnpm install -g hionic\r\n```\r\n\r\n以下两种方式中**任选其一**即可，无需重复操作：\r\n\r\nnpm安装：\r\n\r\n```bash\r\n# 安装插件\r\nnpm install @capacitor/browser\r\n\r\n# 同步插件\r\nhionic sync openharmony\r\n```\r\n\r\nhionic CLI安装：\r\n\r\n```bash\r\nhionic plugin add @capacitor/browser\r\n```\r\n\r\n### 手动引入安装\r\n\r\n根据插件源码中 `plugin.xml` 配置在项目中引入插件：\r\n\r\n#### 1. 添加插件配置\r\n\r\n根据 `plugin.xml` 的 `config-json` 项，通过 `target` 字段找到 `entry` 模块中 `capacitor.plugins.json` 文件，并根据 `param`\r\n标签添加配置如下：\r\n\r\n```json\r\n{\r\n  \"pkg\": \"@capacitor/browser\",\r\n  \"classpath\": \"Browser\"\r\n}\r\n```\r\n\r\n#### 2. 修改 CMake 配置\r\n\r\n根据 `plugin.xml` 的 `CMakeLists` 项，通过 `modules-name` 字段找到模块 `capacitor`，路径为 `target` 字段的\r\n`CMakeLists.txt` 文件，并根据 `param` 标签添加 `add_subdirectory` 和 `target_link_libraries` 如下：\r\n\r\n```cmake\r\n#START_ADD_SUBDIRECTORY\r\n// ...\r\nadd_subdirectory(Browser)\r\n// ...\r\n#END_ADD_SUBDIRECTORY\r\n\r\n// ...\r\n\r\ntarget_link_libraries(capacitor PUBLIC\r\n  \"-Wl,--whole-archive\"\r\n  // ...\r\n  Browser\r\n  // ...\r\n  \"-Wl,--no-whole-archive\"\r\n)\r\n```\r\n\r\n#### 3. 复制源码文件\r\n\r\n根据 `plugin.xml` 的 `source-file` 项，根据 `src` 字段找到需要复制的文件，并根据 `modules-name` 字段和 `target-dir`\r\n字段找到文件复制的具体模块和目录：\r\n\r\n将源码中src/main/cpp/Browser目录下的Browser.h、Browser.cpp、CMakeLists.txt文件引入到capacitor模块中src/main/cpp/Browser目录下。\r\n\r\n将源码中src/main/ets/components/Browser目录下的Browser.ets文件引入到capacitor模块中src/main/ets/components/Browser目录下。\r\n\r\n#### 4. 添加 ArkTS 配置\r\n\r\n在`capacitor`模块的`build-profile.json5`文件中，`buildOption/arkOptions/runtimeOnly/sources`配置项数组中加入步骤 3 中拷贝的\r\nets 文件路径：\r\n\r\n```json\r\n{\r\n  \"buildOption\": {\r\n    \"arkOptions\": {\r\n      \"runtimeOnly\": {\r\n        \"sources\": [\r\n          \"./src/main/ets/components/Browser/Browser.ets\"\r\n        ]\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n## 卸载\r\n\r\n```bash\r\n# 卸载 browser 插件\r\nhionic plugin remove @capacitor/browser\r\n```\r\n\r\n## 约束与限制\r\n\r\n### 兼容性\r\n\r\n在以下版本中已测试通过：\r\n\r\n1. capacitor: 8.0.0-ohos-8.0.0;SDK: 5.0.5(17); IDE: DevEco Studio: 6.0.0; ROM: 5.1.0.150;\r\n\r\n### 权限要求\r\n\r\n无需额外配置应用权限。\r\n\r\n## 使用示例\r\n\r\n### 示例1：基础用法 - 打开指定网页地址\r\n\r\n```typescript\r\nimport { Browser } from '@capacitor/browser';\r\n\r\n// 打开系统浏览器访问指定URL\r\nconst openBrowser = async () => {\r\n  try {\r\n    await Browser.open({\r\n      url: 'https://www.openharmony.cn/',\r\n    });\r\n    console.log('浏览器已成功唤起');\r\n  } catch (error) {\r\n    console.error('浏览器打开失败：', error);\r\n  }\r\n};\r\n```\r\n\r\n### 示例2：添加浏览器状态监听\r\n\r\n```typescript\r\nimport { Browser } from '@capacitor/browser';\r\n\r\n// 添加浏览器打开完成监听\r\nconst addBrowserListener = async () => {\r\n  try {\r\n    const listener = await Browser.addListener('browserFinished', () => {\r\n      console.log('浏览器已完成打开');\r\n      // 此处可执行后续业务逻辑\r\n    });\r\n    console.log('已添加浏览器状态监听器');\r\n  } catch (error) {\r\n    console.error('添加浏览器监听器失败：', error);\r\n  }\r\n};\r\n\r\n// 移除所有事件监听器\r\nconst removeAllBrowserListeners = async () => {\r\n  try {\r\n    await Browser.removeAllListeners();\r\n    console.log('已移除浏览器的所有事件监听');\r\n  } catch (error) {\r\n    console.error('移除监听器失败：', error);\r\n  }\r\n};\r\n```\r\n\r\n## 使用说明\r\n\r\n引入@capacitor/browser插件的Browser模块使用，所有API均基于Promise实现，支持异步调用，无需等待就绪事件。\r\n\r\n### 1. 打开浏览器加载地址\r\n\r\n#### 方法签名\r\n\r\n```Plain Text\r\nopen(options: OpenOptions): Promise<void>\r\n```\r\n\r\n#### OpenOptions\r\n\r\n| 参数名               | 类型                     | 说明                         | 备注                 |\r\n|-------------------|------------------------|----------------------------|--------------------|\r\n| url               | string                 | 需要打开的网页地址，必传               | 支持http/https协议     |\r\n| windowName        | string                 | 浏览器打开的可选目标，对应window.open属性 | 仅限网页端，默认_blank     |\r\n| toolbarColor      | string                 | 工具栏颜色，十六进制色值               | OpenHarmony系统不生效   |\r\n| presentationStyle | 'fullscreen'丨'popover' | 浏览器呈现风格                    | 仅限iOS，默认全屏         |\r\n| width             | number                 | 窗口宽度，单位px                  | OpenHarmony仅自由窗口生效 |\r\n| height            | number                 | 窗口高度，单位px                  | OpenHarmony仅自由窗口生效 |\r\n\r\n### 2. 关闭浏览器\r\n\r\n#### 方法签名\r\n\r\n```Plain Text\r\nclose(): Promise<void>\r\n```\r\n\r\n#### 说明\r\n\r\n仅限Web和iOS平台，OpenHarmony系统不支持该方法。\r\n\r\n### 3. 事件监听\r\n\r\n#### 方法签名\r\n\r\n```Plain Text\r\naddListener('browserFinished', listenerFunc: () => void): Promise<PluginListenerHandle>\r\naddListener('browserPageLoaded', listenerFunc: () => void): Promise<PluginListenerHandle>\r\nremoveAllListeners(): Promise<void>\r\n```\r\n\r\n#### 监听说明\r\n\r\n| 监听方法                                  | 返回类型                                                         | 说明          | 备注            |\r\n|---------------------------------------|--------------------------------------------------------------|-------------|---------------|\r\n| addListener('browserFinished', ...)   | Promise&lt;[PluginListenerHandle](#pluginlistenerhandle)&gt; | 监听浏览器打开完成事件 | 全平台支持         |\r\n| addListener('browserPageLoaded', ...) | Promise&lt;[PluginListenerHandle](#pluginlistenerhandle)&gt; | 监听页面加载完成事件  | 仅限Android和iOS |\r\n| removeAllListeners()                  | Promise&lt;void&gt;                                          | 移除插件所有原生监听器 | 全平台支持         |\r\n\r\n#### PluginListenerHandle\r\n\r\n| 属性名    | 类型                        |\r\n|--------|---------------------------|\r\n| remove | () => Promise&lt;void&gt; |\r\n\r\n## 目录结构\r\n\r\n```\r\n|---- 目录\r\n|     |---- src/main  # 插件的实现代码\r\n|           |----cpp  # C++ 代码\r\n|           |----ets   # ArkTS 代码\r\n|     |---- README.md          # 说明文档\r\n|     |---- package.json       # 配置文件\r\n|     |---- plugin.xml       # 插件配置文件\r\n```\r\n\r\n## 贡献代码\r\n\r\n使用过程中发现任何问题都可以提 [Issue](https://gitcode.com/CPF-Ionic/capacitor-browser/issues)\r\n，当然，也非常欢迎发 [PR](https://gitcode.com/CPF-Ionic/capacitor-browser/pulls) 共建。\r\n\r\n## 许可证\r\n\r\n本插件基于 **MIT License** 开源，详见 [LICENSE](./LICENSE) 文件。","readmeFilename":"README.md"}