Hi,
I am a teacher. In two of my schools students that use Android connect their phones to their projects without problem, but iPhone owners don't. They all show the progress bar, but for the the iOS users they remain stuck at 15%.
The computers and the phones are on the same WIFI network. I noticed that the iOS version is 2.64.5 whereas the Android is at 2.72 - does this make a difference?
The craziest part is that at my home both versions work OK.
To summarize - I have inconsistency between iPhone and Android in the same school, and also inconsistency between my home network and the school...
Does IOS still require a WIFI connection or can it now also use a cellular data like the Android version?
In the previous post you indicated that the IT needs to keep port 8001 open for connections to the phone - does this apply only to iPhone or is it required for both?
Most of the students are using code.appinventor.mit.edu. Does this make any difference?
Did anyone else here run into this problem recently and found a solution?
Thank you
Yossi Yaron
@SteveJG - Obviously... the question is what causes the problem and how to solve it.
I just edited the post and added the fact that most of the students are using https://code.appinventor.mit.edu
No, it is possible to use cellular since we added support for WebRTC in addition to legacy mode, just like Android. Getting stuck at 15% suggests the WebRTC negotiation isn't proceeding, which might mean your network is blocking it.
Port 8001 is only needed for legacy connections since in legacy mode the phone hosts a webserver on that port to facilitate the companion communication.
This should not make a difference as the code deployed on both servers is the same w.r.t. the companion connection. The only difference between them is how projects are stored on the server, which is not involved in the connection handshake.
Thanks for the detailed response.
We are now on a school break because of the Jewish holidays. I will try to visit the school next week and run some further tests.
You wrote "Getting stuck at 15% suggests the WebRTC negotiation isn't proceeding, which might mean your network is blocking it." I am trying to understand how come the network is blocking the connection to the iOS devices but not to the Android devices.
What do you suggest that I try/test?
Opening ports on the network involves a lot of red tape, but it can be done (though I need to be very specific).
You should be able to open it in Safari or another browser on the iOS device. The second thing is that if you go to chrome://webrtc-internals/, you can create a dump after the connection gets stuck that we can use to learn more about why the connection is failing.
Update: the Internet Service Provider opened port 8001 (I filed the request before getting your response).
Now everything works OK - I tested on an old iPhone 8 plus running iOS 15.3.1.
The emulator also works OK on some of the computers so it seems that the network issues were resolved.
The ISP may have opened additional things (I have no direct connection with them) or you changed something on your end.
Either way, thank you!