Ionic + Capacitor - Доступ к мобильной камере PWA на iOS - Работает в Safari - Но не с иконки на главном экране - PullRequest
0 голосов
/ 10 июля 2019

Как видно из названия, камера отлично работает в 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));
  }
}

Есть предложения?

1 Ответ

1 голос
/ 10 июля 2019

После дальнейшего поиска я нашел сообщение SO: Как получить доступ к камере в веб-приложении на домашнем экране iOS11?

Похоже, это известная проблема с PWA для iOS и домашней страницы., без возможности обойти это в настоящее время с Ionic + Capacitor.Спасибо, Apple.(

...