Skip to content

Instantly share code, notes, and snippets.

@RimuruDev
Forked from JohannesDeml/README.md
Created June 6, 2023 19:12
Show Gist options
  • Save RimuruDev/54be1aea9b905b1831a9fcf8693219cc to your computer and use it in GitHub Desktop.
Save RimuruDev/54be1aea9b905b1831a9fcf8693219cc to your computer and use it in GitHub Desktop.
Remove Unity mobile notification warning for WebGL builds

Remove warning

Unity shows the following warning on mobile devices up to Unity 2019.4: "Please note that Unity WebGL is not currently supported on mobiles. Press OK if you wish to continue anyway." This script helps you remove this warning

Live example

To see live examples see Unity Web GL Loading Test

Logic

The script will run after the build has completed and replace the checks from all generated javascript files.

Support

  • Tested up to Unity 2020.3, but should work with any version
  • Works with Name Files as Hashes, since it looks for all js files in the Build folder
  • Only runs when building for WebGL, so you can use it for a multiplatform project

Trouble Shooting

If you still see the message, there are several reasons why this could happen

  • Make sure you included the file in an Editor folder inside your project (e.g. Assets/Editor/RemoveMobileSupportWarningWebBuild.cs)
  • Make sure you get a console log message "Removing mobile warning from YOURPATH" after the build is finished. If you don't get this message there is a problem with your integration of the script. Probably, the script is not in the Editor folder.
  • Make sure you emptied your browser cache on the device you are testing on (Android | iOS)
  • Try to open the website in private mode, might help with strage cache problems
  • Take a look at Unity Web GL Loading Test. There you can see the script in action, take a look at how the script is integrated or build the repo yourself to see how it should behave.
  • Inside you Build folder, take a look at the *.js file, and see if you can find an instance of "UnityLoader.SystemInfo.mobile". If you can still find that, the script didn't run properly.
  • If you need professional help, you can write me an email

Further Notes

  • Unity adds this note, since the builds oftentimes don't work for mobile, so oftentimes it does make sense to include the info.
// --------------------------------------------------------------------------------------------------------------------
// <copyright file="RemoveMobileSupportWarningWebBuild.cs">
// Copyright (c) 2021 Johannes Deml. All rights reserved.
// </copyright>
// <author>
// Johannes Deml
// public@deml.io
// </author>
// --------------------------------------------------------------------------------------------------------------------
#if !UNITY_2020_1_OR_NEWER //Not needed anymore in 2020 and above
using System.IO;
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEngine;
namespace Supyrb
{
/// <summary>
/// removes a warning popup for mobile builds, that this platform might not be supported:
/// "Please note that Unity WebGL is not currently supported on mobiles. Press OK if you wish to continue anyway."
/// </summary>
public class RemoveMobileSupportWarningWebBuild
{
[PostProcessBuild]
public static void OnPostProcessBuild(BuildTarget target, string targetPath)
{
if (target != BuildTarget.WebGL)
{
return;
}
var buildFolderPath = Path.Combine(targetPath, "Build");
var info = new DirectoryInfo(buildFolderPath);
var files = info.GetFiles("*.js");
for (int i = 0; i < files.Length; i++)
{
var file = files[i];
var filePath = file.FullName;
var text = File.ReadAllText(filePath);
text = text.Replace("UnityLoader.SystemInfo.mobile", "false");
Debug.Log("Removing mobile warning from " + filePath);
File.WriteAllText(filePath, text);
}
}
}
}
#endif
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment