In general you should display a prompt explaining why a permission is needed (eg. "we need access to your camera to camera to take a picture to send to the owner, click allow on the next screen to allow."), and only ask for permissions after the user accepts the first prompt.
However in this particular case you shouldn't have to request camera access directly. Using <input type="file" accept="image/*" capture="user> will display an system interface (ie. from the browser or OS) to allow the user to take/select an existing picture. It also already has preview and front/back camera selector built in, so you don't have to implement that yourself.
https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes...
I'll have a look at using the `capture` attribute on an input. My initial idea was to do video over webRTC, but the selfie version works okay for a first version
Of course, you would not have learned your first iOS/Android app with that approach. Maybe that's the better lesson to learn though--not everything needs to be an app
I might have a situation where the QR Code makes sense though. I'm renting a location for a party at the top of a building, which is only accessible by transponder cards. So there is no door bell or anything. Instead of having someone letting the guests in, this could be an alternative.
While a cheap radio doorbell might be better in many cases, there are still circumstances where it's not suitable. I'm trying to figure out which those are?