These are the current known issues which may be observed when using the SDK in certain circumstances. Please note that these may change at any time as new versions of browsers and operating systems are released by manufacturers.
No Available Capture Devices
In the event no cameras are detected, the system will fall back to the file upload provider automatically. This applies on all supported platforms.
No Support for Web Assembly
In the event Web Assembly is not supported in the target browser, it will automatically fall back to the default camera-input method. This also applies to all supported platforms.
Camera Permissions
If camera permissions are not granted when requested, or there is a delay in the user responding to the prompt, a customisable message will be shown on screen which will prompt them to review and accept the request for access to the camera hardware.
NOTE: When using Chrome on a Windows machine, there is a known issue where the camera permissions prompt is not shown until the window is moved on the screen. It is advisable that you set a message in the translations if this is likely to affect your integrations.
NOTE: When using Safari on iOS, camera permissions are requested once for each camera on the device every time the page is reloaded. There is no way around this as of the time of writing due to how Apple has dealt with permissions in Safari. Please see the following article for further information:
Image Cropping
It is advised that you leave suitable space around the edges of the cropping area for the user to move around the page if you don’t plan on capping the size of the canvas yourself. Due to how the cropping functionality works, the scrolling of the page has to be prevented when interacting with the canvas to allow accurate positioning of the handles. Without this behaviour, it’s very difficult to position handles as the page moves as well as the handles.
Due to how iOS handles browser navigation, it is also advisable to leave a decent-sized margin around the outside of the image area so the user can grab the adjustment handles without initiating page navigation. Different devices exhibit different screen sensitivities in this regard, so some trial and error maybe required when tuning this for your solution.
Browser Support for CSS Masking
The provided basic version of the camera overlay relies on CSS masking which isn’t fully supported in iOS Safari of FireFox due to the lack of composition configuration in iOS Safari and advanced masking functionality in FireFox.
Depending on your requirements for the type and appearance of overlay, the composition issues present on iOS may well not affect you or your users.
MIME Types
Some web servers will not serve files when there is no defined MIME types for files in the directories you’re serving. Microsoft’s IIS is a good example of this when it comes to .wasm
files as these are uncommon. If you see the ides scripts failing to load, be sure to check your MIME type configuration.
Older Browser Support
There are provisions in the codebase to support older browsers which don’t offer support for retrieving media devices and such. They will fall back to file upload, although they will still require some polyfills to function. It is recommended you use a simple service to polyfill on these older browsers rather than try and build this into your solution. One such example is the following:
<!--[if IE]>
<script type="text/javascript" src="https://polyfill.io/v3/polyfill.min.js?flags=gated&rum=true&features=default%2Ces7%2Ces6%2Ces5" charset="UTF-8"></script>
<![endif]-->
Adding the above into the HTML document you’re serving your customers will load the scripts which will polyfill all the missing functionality on demand to avoid you having to impact all browsers unnecessarily. You may want to customise this for your own needs.
Camera Choices
Some browsers, such as FireFox do not allow the user to control which camera to use once permissions have been granted meaning it’s not possible for the camera select box to function as intended. There is currently no workaround for this!
Camera Capabilities
Some cameras on certain devices will report erroneous data for properties like the facingMode
and deviceId
, so it is suggested these are not relied upon when making choices. Additionally, the deviceId
will change on a per device basis, and may also be different between execution cycles.