我正在使用cordova最新版本(5.XX)来构建一个多平台应用程序(ios/android/wp8).在"main/root"config.xml中,我指定了一些插件依赖项:
<plugin name="cordova-plugin-camera" spec="~1.2.0" />
<plugin name="cordova-plugin-console" spec="~1.0.1" />
<plugin name="cordova-plugin-datepicker" spec="~0.8.6" />
<plugin name="cordova-plugin-device" spec="~1.0.1" />
<plugin name="cordova-plugin-file" spec="~3.0.0" />
Run Code Online (Sandbox Code Playgroud)
但是我需要为每个平台添加特定的插件.例如在wp8中使用"X"插件并在iOS平台中使用"Y"插件.
我尝试在平台内设置插件依赖项,但运气不错:
<platform name="wp8">
<preference name="fullscreen" value="true"/>
<preference name="webviewbounce" value="false"/>
<preference name="UIWebViewBounce" value="false"/>
<plugin name="some-plugin-name" spec="version_number" />
</platform>
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
或者,还有其他方法吗?我可以安装多个插件"A,B,C,D",添加平台时只包含"A,B,D"吗?
我知道我可以手动添加/ del插件,但这是一个非常大的项目,有一些不同的人在上面工作,如果我可以创建一些自动过程,那就太棒了.
我正在使用 Ionic 4 和 Angular 7 开发 PWA。
我需要访问网络摄像头(如果存在),然后在画布中渲染。在此过程中,我使用ImageCapture ( https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture )。
let constrains =
{
audio:false,
video:
{
frameRate: { ideal: 60, min: 30 },
facingMode: { ideal: "user" },
width: { exact: 626 },
height: { exact: 720 },
}
}
navigator.mediaDevices.getUserMedia(constrains).then(mediaStream =>
{
this.Webcam.nativeElement.srcObject = mediaStream;
this.Webcam.nativeElement.play();
const track = mediaStream.getVideoTracks()[0];
let ic:ImageCapture = new ImageCapture(track);
return this.ImageCapture.getPhotoCapabilities();
});
Run Code Online (Sandbox Code Playgroud)
我收到一个错误,因为 TypeScript 对 ImageCapture 一无所知,所以我安装了类型并将它们添加到我的 package.json 中:
npm install --save-dev @types/w3c-image-capture
Run Code Online (Sandbox Code Playgroud)
当使用“ionicserve”或“ionicbuild--prod”构建应用程序时,我收到此错误:
src/app/pages/photoframe/photoframe-take/photoframe-take.page.ts(26,22) 中的错误:错误 TS2304:找不到名称“ImageCapture”。src/app/pages/photoframe/photoframe-take/photoframe-take.page.ts(117,28):错误TS2663:找不到名称“ImageCapture”。您是指实例成员“this.ImageCapture”吗?
如果我调试应用程序,ImageCapture 就有价值,所以这只是我构建的问题。 …
我正在使用 Angular 9,并且我简单地尝试将 img 元素的属性“loading”绑定到 Angular 属性。如果我在开发模式下运行应用程序,而不是在生产模式下运行该应用程序,则此方法有效。
在我的模板中我有这个:
<img [src]="image" [loading]="loading" [alt]="title">
Run Code Online (Sandbox Code Playgroud)
在组件中我有这个:
import { Component, OnInit, Input } from '@angular/core';
@Component(
{
selector: 'image-card',
templateUrl: './image-card.component.html',
styleUrls: ['./image-card.component.scss'],
})
export class ImageCardComponent implements OnInit
{
@Input() loading:"lazy" | "eager" = "lazy";
@Input() title:string;
@Input() image?:string;
constructor() { }
ngOnInit()
{
this.image = this.image || "assets/images/default_image.jpg";
}
}
Run Code Online (Sandbox Code Playgroud)
这是在开发构建/ng 服务上运行的,但如果我运行产品构建:
ng build --prod
Run Code Online (Sandbox Code Playgroud)
我收到错误:
无法绑定到“loading”,因为它不是“img”的已知属性。
该属性存在,https://caniuse.com/#search=loading为什么我收到错误?
如何在产品构建中排除此验证/限制?
例如,alt 绑定工作正常,没有错误。
编辑:包括更好的代码示例。