#ios #reactjs #ionic-framework #navigator
Вопрос:
Мы используем скрытый элемент HTMLInputElement в нашем приложении Ionic, чтобы пользователи могли прикреплять файлы в нашем приложении одним нажатием кнопки.
const fileInput = useRef<HTMLInputElement | null>(null);
<input
className="fileInput"
ref={fileInput}
type="file"
onChange={onFileChange}
style={{ display: 'none' }}
multiple={multiple}
accept={accept}
/>
В приложениях для Windows и Android, построенных на его основе, они позволяют только выбрать файл. iOS, с другой стороны, также предоставляет опцию «Сделать снимок или видео». Если вы выберете это, откроется приложение «Камера», а затем вы получите приглашение с запросом разрешения на использование камеры телефона. Если вы выберете запретить, приложение камеры останется открытым, и вы сможете прикрепить фотографию или видео, снятые с него. Чтобы получить представление об этом, я ввожу код при входе в систему, который запрашивает разрешение с помощью navigator.mediaDevices.getUserMedia, и мне предлагается разрешить или запретить доступ к камере. Проблема в том, что когда вы нажимаете на кнопку, чтобы прикрепить файл, опция «Сделать снимок или видео» все еще присутствует, даже если пользователь отказал в разрешении на камеру. Пользователь все еще может выбрать его, и он вызовет приложение камеры, но на самом деле не сможет сделать снимок с его помощью. Что мне нужно сделать, чтобы приложение уважало разрешение, в котором ему отказано, поэтому «Сфотографировать или видео» не отображается?