разрешение navigator.mediaDevices.getUserMedia не проверено в приложении iOS React/Ionic project

#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, и мне предлагается разрешить или запретить доступ к камере. Проблема в том, что когда вы нажимаете на кнопку, чтобы прикрепить файл, опция «Сделать снимок или видео» все еще присутствует, даже если пользователь отказал в разрешении на камеру. Пользователь все еще может выбрать его, и он вызовет приложение камеры, но на самом деле не сможет сделать снимок с его помощью. Что мне нужно сделать, чтобы приложение уважало разрешение, в котором ему отказано, поэтому «Сфотографировать или видео» не отображается?