PWA Elements
某些 Capacitor 插件,如 Camera 或 Toast,在非原生运行时具有基于 Web 的 UI。例如,在 Web 上运行时调用 Camera.getPhoto() 将加载一个响应式的拍照体验:
此 UI 使用 Web 组件实现。由于这些元素被 Shadow DOM 封装,这些组件不应与您自己的 UI 冲突。
安装
要启用这些控件,您必须将 @ionic/pwa-elements 添加到您的应用中。
典型的安装涉及导入包并注册元素,或在您的应用的 index.html 的 <head> 中添加 script 标签:
导入 PWA Elements
npm install @ionic/pwa-elements
然后,根据您选择的框架,导入元素加载器并在正确的时间调用它:
React
index.tsx 或 index.js:
import { defineCustomElements } from '@ionic/pwa-elements/loader';
ReactDOM.render(<App />, document.getElementById('root'));
// 在应用首次渲染后调用元素加载器
defineCustomElements(window);
Vue
main.ts
import Vue from 'vue';
import App from './App.vue';
import router from './router';
import { defineCustomElements } from '@ionic/pwa-elements/loader';
Vue.config.productionTip = false;
new Vue({
el: '#app',
router,
template: '<App/>',
components: { App },
});
// 在平台引导完成后调用元素加载器
defineCustomElements(window);
Angular
main.ts:
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
import { defineCustomElements } from '@ionic/pwa-elements/loader';
if (environment.production) {
enableProdMode();
}
platformBrowserDynamic()
.bootstrapModule(AppModule)
.catch(err => console.log(err));
// 在平台引导完成后调用元素加载器
defineCustomElements(window);