web-dev-qa-db-ja.com

iOSスタンドアロンPWA入力キャプチャ

スタンドアロンモードで実行されているPWAに関して、iOS 13.2/13.3でリグレッションを見つけたと思います。

IOSではPWAがgetUserMedia()にアクセスできないため、HTML5入力タグの capture 属性を使用して、ユーザーが写真を撮ってサーバーに送信できるようにします。

コードは次のようになります。

<div class="camera-upload">
     <input type="file" class="hidden" name="uploadPhotoInput" accept="image/*" capture="environment" (change)="onTakePhoto($event)">
     <button type="button" class="btn btn-primary">Take photo</button>
</div>

IOS 13.1以下のデバイスでスタンドアロンモードでPWAを実行すると、すべてが期待どおりに機能します。 SafariでブラウザモードでPWAを実行すると、iOSのバージョンに関係なくすべてが機能します。

IOS 13.2または13.3を搭載したデバイスでPWAを実行すると、PWAをバックグラウンドにしてから再びフォアグラウンドにするまで機能が動作します。 PWAがバックグラウンドに送信された後、キャプチャはカメラを起動しますが、プレビューは真っ黒です。すべてのカメラコントロール(フラッシュなど)は機能しますが、写真は撮られません。

XCodeコンソールロガーを接続してテストを実行したところ、アプリがバックグラウンドで1回起動された後でAVCaptureSessionを開始できないようです。

次に、デバイスログのトレースを示します。

https://Pastebin.com/qGZpN6dM

Angular 8。

誰かがこのようなものを見たか、私たちにヒントを与えることができますか?

9
elbuild

@elbuild

https://bugs.webkit.org/show_bug.cgi?id=206219

バグはこちらに投稿されました。投稿にも貢献して気軽に投稿してください。私も同じようにします

1
Lake Sereni

最後に、これはiOS13.4で解決されました

0
Keith Coughtrey

えっと…いや。 13.4でもそれは可能です。

私は、ユーザーにこれを取得した場合は、単に家に帰るのではなく、アプリをフリックして閉じることをユーザーに伝えます。貧弱な回避策ですが、うまくいけば本当の修正がいつか到着するでしょう。

0
Eureka