MeetingService.handZoomWebUrl() does not work unless user is logged in

@carson.zoom, thank you very much for the reply, it really helped me figure out what was going on and it was all related to a missing display name.

Normally when I join a meeting I specify the display name via JoinMeetingParams. However handZoomWebUrl() does not allow JoinMeetingParams. When onMeetingNeedPasswordOrDisplayName() was getting called, I was only reacting to it if needPassword was true. In the case of a meeting URL with an embedded pwd parameter, onMeetingNeedPasswordOrDisplayName() was getting called with needPassword=false and needDisplayName=true and I was ignoring it. I fixed this and now the MeetingService is transitioning to INMEETING.

However, there is one small problem I’m still seeing. If the meeting is not started, the MeetingService transitions to WAITINGFORHOST, as it should. When the host starts the meeting, the MeetingService won’t always transition to INMEETING. It depends on the format of the URL. Here were my test cases:

These are all with non-login users and a custom UI.

Meeting already started, handZoomWebUrl() works perfectly every time regardless of URL format or password protection.

Password protected meeting not started, handZoomWebUrl(“https://zoom.us/j/XXXXXXXXXX”) will call back to onMeetingNeedPasswordOrDisplayName() and after user enters a correct password MeetingService goes to WAITINGFORHOST. Host starts meeting, MeetingServcie goes to INMEETING every time.

Password protected meeting not started, handZoomWebUrl(“https://zoom.us/j/XXXXXXXXXX?pwd=ZZZZZZZZZZZZ”), MeetingService goes to WAITINGFORHOST. Host starts meeting, MeetingService usually stays in WAITINGFORHOST forever but I have seen it go to INMEETING occasionally. Rough testing shows a 1 in 5 chance that it works correctly. I wait for several minutes each time I test. When it does work, the transition to INMEETING is usually with seconds.

Non-password protected meeting not started, handZoomWebUrl(“https://zoom.us/j/XXXXXXXXXX”), MeetingService goes to WAITINGFORHOST. Host starts meeting, MeetingService remains stuck in WAITINGFORHOST. Just like above, will occasionally work correctly about 1 in 5 tries.