- Home /
Check internet connection from WebGL build
Dealing with code from plugin that crashes the WebGL program when not connected to the internet. At the current stage of development we have to use a local html file to run the game.
Below are the methods we have tried (and failed):
Ping: Not supported in WebGL.
UnityWebRequest: Cannot access web resources that aren't on the same server as the WebGL project (Which we aren't even hosting since we are using local files).
Try Catch: Plugin code does not get caught.
Application.logMessageReceived += LogCallback: Crashes before it calls / Doesn't call at all.
Answer by FZ_Applications · May 08, 2020 at 07:54 PM
Maybe try Application.internetReachability
Forgot to mention but we do have switch case checks for this, which returns "NetworkReachability.ReachableViaLocalAreaNetwork" every time regardless of whether the device is connected to the internet.
Edit: To add on, the code does work fine in the editor, but when running on $$anonymous$$icrosoft Edge browser using WebGL build, it behaves like described above.
Answer by SamueleSaviano · Sep 15, 2021 at 09:36 AM
It's maybe late for this but I hope this can help someone.
Application.internetReachability is not reliable for checking if you're actually connected. I suggest making a simple HTTP request, if everything goes right then you're connected.
public IEnumerator CheckInternetConnection()
{
const string _echoServer = "https://urlsample.com/pagesample/";
UnityWebRequest _request = UnityWebRequest.Head(_echoServer);
_request.timeout = 5;
yield return _request.SendWebRequest();
ConnectionManager.Connected = !_request.isNetworkError && !_request.isHttpError && _request.responseCode == 200;
}
Your answer
Follow this Question
Related Questions
Sql Help Unity 3d 1 Answer
Online chat in unity 1 Answer
Declaring Variable in Child & Access as Parent 2 Answers
"Couldn't connect to host" from Windows 7 but OK on OSX...? 0 Answers
SQL connection Problem 1 Answer