I'm building a WebRTC browser app. I use Agora Web SDK 4.7.0, but this shouldn't affect the solution.
Agora has AgoraRTC.getDevices() method which internally relies on enumerateDevices (AFAIK) and it works as expected on Android, returning a list of all the cameras on the device, but on an iPhone it only returns a "Front camera" and a "Back camera". Two more back cameras are missing.
It's the same way when you just open any "online webcam test" website on our iPhone, it only lists two cameras to choose from, whereas on Android you'll see all of them.
Is there any way to make them accessible or somehow obtain the deviceID of the wide-angle and zoom cameras on an iPhone?
With the native SDK you can create an AVCaptureSession and pick the camera and send that feed directly to Agora. I expect there is a similar way to create a camera session via web, pick the camera, and send that feed through to Agora.
There is an article about custom video sources in web here, so if you create a camera stream of the wide lens, this will help push it to the agora engine:
https://docs.agora.io/en/Video/custom_video_web?platform=Web