跳到主要内容
版本:v5

PWA 元素

某些 Capacitor 插件,例如 CameraToast,在非原生环境下运行时提供了基于 Web 的用户界面。例如,调用 Camera.getPhoto() 在 Web 端运行时,会加载一个响应式的拍照体验:

PWA 元素

此用户界面是使用 Web 组件实现的。由于这些元素被封装在 Shadow DOM 中,因此它们不会与您自己的用户界面产生冲突。

安装

要启用这些控件,您必须在应用中添加 @ionic/pwa-elements

典型的安装方式包括导入包并注册元素,或者将脚本标签添加到应用 index.html<head> 中:

导入 PWA Elements

npm install @ionic/pwa-elements

然后,根据您选择的框架,在适当的时机导入元素加载器并调用它:

React

main.tsxindex.tsxindex.js

import { defineCustomElements } from '@ionic/pwa-elements/loader';

// 在渲染调用之前调用元素加载器
defineCustomElements(window);
Vue

main.ts

// 在 createApp() 行之前
import { defineCustomElements } from '@ionic/pwa-elements/loader';
defineCustomElements(window);
Angular

main.ts

import { defineCustomElements } from '@ionic/pwa-elements/loader';
// 在 bootstrapModule/bootstrapApplication 调用之前调用元素加载器
defineCustomElements(window);
if (environment.production) {
enableProdMode();
}

通过脚本标签引入

PWA Elements 也可以通过 index.html 中的脚本标签引入。但请注意,这种方式在离线场景下将无法工作:

<script
type="module"
src="https://unpkg.com/@ionic/pwa-elements@latest/dist/ionicpwaelements/ionicpwaelements.esm.js"
></script>
<script
nomodule
src="https://unpkg.com/@ionic/pwa-elements@latest/dist/ionicpwaelements/ionicpwaelements.js"
></script>