我认为我们在 iOS 13.2/13.3 中发现了关于在独立模式下运行的 PWA 的回归。
由于在 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 控制台记录器的情况下运行了一个测试,它看起来在应用程序被置于后台一次后 AVCaptureSession 无法启动。
这是设备日志的跟踪:
我们正在使用 Angular 8 构建我们的 PWA。
有没有人看到过这样的事情或者可以给我们一个提示?