Как видно из названия, камера отлично работает в PWA при переходе по URL-адресу приложения из Safari.
Но после использования «Добавить на главный экран» для создания значка на рабочем столе и запуска PWA из нового значка PWA работает во всех отношениях, как и ожидалось, но камера не открывается.
Я также пытался использовать браузер Chrome на устройстве, но, к сожалению, камера даже не открывается из PWA при запуске через URL.
При запуске PWA с рабочего стола я предполагаю, что iOS будет использовать Safari, а не Chrome или другой браузер. Я не прав?
Но, безусловно, с тех пор я удалил Chrome, к сожалению, с тем же результатом, то есть через URL в Safari, PWA прекрасно открывает камеру. Через значок на рабочем столе, без сигар.
Реализовано с использованием инструкций от:
https://capacitor.ionicframework.com/docs/guides/ionic-framework-app
Это связанный HTML-файл:
<p>
Click the Camera button at the bottom of the page to launch the device's
camera.
</p>
<ion-content>
<img [src]="photo" *ngIf="photo">
<ion-fab vertical="bottom" horizontal="center" slot="fixed">
<ion-fab-button (click)="takePicture()">
<ion-icon name="camera"></ion-icon>
</ion-fab-button>
</ion-fab>
</ion-content>
Это связанный файл компонента:
import { Component, OnInit } from '@angular/core';
import { Plugins, CameraResultType, CameraSource } from '@capacitor/core';
import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';
@Component({
selector: 'camera',
templateUrl: './camera.component.html',
styleUrls: ['./camera.component.scss'],
})
export class CameraComponent implements OnInit {
photo: SafeResourceUrl;
constructor(private sanitizer: DomSanitizer) { }
ngOnInit() {}
async takePicture() {
const image = await Plugins.Camera.getPhoto({
quality: 100,
allowEditing: false,
resultType: CameraResultType.DataUrl,
source: CameraSource.Camera
});
this.photo = this.sanitizer.bypassSecurityTrustResourceUrl(image && (image.dataUrl));
}
}
Есть предложения?