Tóm lược
Chúng tôi không thể truy cập máy ảnh từ ứng dụng web màn hình chính iOS11 (phát hành công khai) bằng cách sử dụng WebRTC hoặc nhập tệp, chi tiết bên dưới. Làm thế nào người dùng của chúng tôi có thể tiếp tục truy cập vào máy ảnh?
Chúng tôi đang phục vụ trang ứng dụng web qua https.
Cập nhật, tháng tư
Bản phát hành công khai của iOS 11.3 dường như đã khắc phục sự cố và truy cập máy ảnh đầu vào tệp đang hoạt động trở lại!Cập nhật tháng 3
Như mọi người ở đây đã nói rằng các tài liệu của Apple khuyên rằng chức năng camera của ứng dụng web sẽ quay trở lại vào ngày 11.3 cùng với các nhân viên dịch vụ. Điều này là tốt nhưng chúng tôi chưa chắc chắn nếu chúng tôi muốn mọi người cài đặt lại cho đến khi chúng tôi có thể kiểm tra kỹ lưỡng trên 11.3GM.
Giải pháp, tháng 11
Chúng tôi đã mất hy vọng Apple muốn khắc phục điều này và tiến về phía trước. Đã sửa đổi ứng dụng web của chúng tôi để xóa chức năng "Thêm vào màn hình chính" của iOS và yêu cầu người dùng bị ảnh hưởng xóa bất kỳ biểu tượng màn hình chính nào trước đó.Cập nhật, ngày 6 tháng 12
iOS 11.2 và iOS 11.1.2 không sửa.
Cách giải quyết, ngày 21 tháng 9
Có vẻ như chúng tôi có thể hỏi khách hàng hiện tại của ứng dụng web
- không nâng cấp lên iOS11 - chúc may mắn với điều đó :)
- chụp ảnh bằng máy ảnh iOS và sau đó chọn lại chúng trong ứng dụng web
- chờ bản beta tiếp theo
- cài đặt lại dưới dạng trang Safari trong trình duyệt (sau khi chúng tôi xóa logic ATHS)
- chuyển sang Android
Nhập tệp
Mã sản xuất hiện tại của chúng tôi sử dụng đầu vào tệp đã hoạt động tốt trong nhiều năm với iOS 10 trở lên. Trên iOS11, nó hoạt động như một tab Safari nhưng không phải từ ứng dụng màn hình chính. Trong trường hợp sau, máy ảnh được mở và chỉ hiển thị màn hình đen, do đó không thể sử dụng được.
<meta name="apple-mobile-web-app-capable" content="yes">
...
<input type="file" accept="image/*">
WebRTC
Safari 11 trên iOS11 cung cấp khả năng chụp phương tiện WebRTC rất tuyệt vời.
Chúng tôi có thể chụp ảnh máy ảnh thành khung vẽ trên một trang web bình thường trên máy tính để bàn và thiết bị di động bằng cách sử dụng navigator.mediaDevices.getUserMedia theo mã mẫu được liên kết tại đây .
Khi chúng ta thêm trang vào màn hình chính của iPad hoặc iPhone, navigator.mediaDevices
sẽ trở nên undefined
không sử dụng được.
<meta name="apple-mobile-web-app-capable" content="yes">
...
// for some reason safari on mac can debug ios safari page but not ios home screen web apps
var d = 'typeof navigator : ' + typeof navigator; //object
d += 'typeof navigator.mediaDevices : ' + typeof navigator.mediaDevices; // undefined
// try alternates
d += 'typeof navigator.getUserMedia : ' + typeof navigator.getUserMedia; // undefined
d += 'typeof navigator.webkitGetUserMedia : ' + typeof navigator.webkitGetUserMedia; // undefined
status1.innerHTML = d;