Known Issues & FAQ

We've worked hard to deliver a great LearnBrite Scenario experience, but we're still tracking some known issues. If you find others, please Give us feedback.

Trial & Licensing

Does the trial have restricted functionality?

Who is an “author”?

What is “Built-in conferencing”

What counts as usage for built-in conferencing?

What is the done-for-you (DFY) LMS integration?

Access

How do I invite other users to a space/world?

Does LearnBrite work in China?

Versions

How can I change the version of a space/world?

Which version of Scenario should I use?

Creating spaces & using templates

How do I copy a space?

Blank Template has Invisible Floor

Building from a Blank Template

Editing

Advanced Transform Controls

What is the recommended image size for the banners in the Virtual Conference space?

Navigation

Spawn (starting) hotspot

Bringing Multiple Spaces together in a World

Switching Spaces in a Campus (World)

Optimization

My space loads slowly!

How should I optimize my own models/textures?

Why are some avatars semi-transparent?

Space Settings

How do I change the settings of a space?

Virtual Meeting checkbox – collaborate in a space together

UI

What is the “goggles” icon supposed to do (on different devices)

Text-to-speech

The Chinese Female voice stops before finishing the sentence

Gamification

How can I track a score in ChatMapper?

How can I track a score within a space?

How can I add achievements?

Actions

Make 3D items clickable and trigger actions (2.6+)

Make parts of a scene clickable (2.6+)

Stop Camera Position Changes after onclick action (2.9+)

How can I hide/show items?

Mediaboards

Which YouTube URL should I use?

Notes

How to change the visual look of Notes

How to use UI icons in Notes and Dialogue

Adding Images to Notes

Multiuser / Conferencing

Roles

Setting the maximum number of users in a meeting space

What is the Maximum number of users in a space?

iOS 12 Chrome does not support Audio and Video conferencing

ChatMapper

Treating Variables in ChatMapper as Text or Number

Troubleshooting ChatMapper Exports

Why do some actions (e.g. displayImage) skip the node afterwards?

Known Issues

HLS streams

HLS streams do not appear on iOS 14

3D editing

I cannot remove 3D items from my space

Error messages

Component couldn't load

ResponsiveVoice

Browser/Device Compatibility

Safari: too many redirects

Android Firefox

Brave Browser

Complex environments on iOS

Trial & Licensing

Does the trial have restricted functionality?

The trial offers unrestricted access to everything in the platform.

Who is an “author”?

See our description of User Roles.

What is “Built-in conferencing”

As a platform, we integrate with a variety of conferencing/communication services (Zoom, Slack, Bluejeans, etc.), so we differentiate our "native" conferencing this way. In practical terms, built-in conferencing is what is active by default in any space or world you create, which you access by clicking on the phone icon in the 3D environment.

What counts as usage for built-in conferencing?

Built-in conferencing time is time spent on a call, or sharing screen/video, with the built-in conferencing. Simply being in a space does not use this time; using Zoom (or other services) for calls and screen/video sharing does not consume this time either.

What is the done-for-you (DFY) LMS integration?

Every space created comes with a 1-click export of a SCORM module that works with almost all LMSs and allows recording a score in them. In certain environments however some tweaking is needed (due to a variety of factors from security policies, to an LMS that is not standards-compliant or only uses LTI as a connection mechanism, to custom requirements on your part, etc). If your subscription includes the DFY LMS integration, we will work closely with you to integrate with your LMS.

Access

How do I invite other users to a space/world?

See “How do I… → Invite other users to a space/world from the 3D environment?”, or “How do I… → Invite other users to a space/world from Dashboard?”.

Does LearnBrite work in China?

Clients have had success using the platform in China, but we do not have servers inside the country, and therefore recommend you run your own tests with colleagues to ensure the experience performs to your satisfaction.

Versions

How can I change the version of a space/world?

See “How do I… → Change the version of a space/world?

Which version of Scenario should I use?

Any space you create will use the version currently set as default (2.13 at the time of writing, September 2020). Later versions will give you extra features (if you encounter any bugs let us know!).

Creating spaces & using templates

How do I copy a space?

See “How do I… → Copy/duplicate a space?

Blank Template has Invisible Floor

The blank template has an invisible floor which allows you to drag bots and items around. Just be aware this plane exists if you are trying to place items lower than the floor you won’t be able to unless you manually adjust the position “y” value to be a negative number in the edit items list.

Building from a Blank Template

Learn more about building a scene with 3rd party 3d models for rooms/scenes here: Building from a Blank Template 

Editing

Advanced Transform Controls

To use advanced transform controls:

  1. In your space click the Pencil+ menu icon
  2. Choose Start editing
  3. Again, in your space click the Pencil+ menu icon
  4. Choose Show items list
  5. Find the item you wish to adjust placement for, click Edit
  6. Click the button Show advanced transform controls

Now in the scene you will see a widget with axis and some extra buttons below the top toolbar.

Using Transform you can click the transform widget and drag the item in that axis to place it where you would like.

Using Rotate you can click the rotate widget and rotate the item in that axis.

Using Scale you can click the scale widget and drag to adjust the item’s scale on any axis.

What is the recommended image size for the banners in the Virtual Conference space?

We follow the recommendations from the IAB (Interactive Advertising Bureau, iab.com). Any image with size equivalent to 970×250 pixels will fit the banners without distortion, though please note that the image must be rotated 90 degrees for the vertical banners (i.e. the dimensions of the image for vertical banners are 250×970).

The correct ratio for non-distorted images is therefore 97:25 for horizontal banners and 25:97 for vertical ones.

Navigation

Spawn (starting) hotspot

Where the user enters a scene is a special type of hotspot. With most templates when you arrive there are only the bots and you. Going into edit mode you can not move the spawn hotspot (you can’t move the hotspot you are currently occupying) so create a new hotspot in edit mode, stop editing, move to the new hotspot… now you can select and move the spawn hotspot in edit mode.

Be aware the spawn hotspot does not bring people exactly to that spot, but in a small radius around it randomly, this helps avoid when many users enter a space that their bodies are not inside each others.

Bringing Multiple Spaces together in a World

To do this, you will need to create a World in https://app.learnbrite.com/dashboard/worlds, and then add all the spaces you want to connect together in it.

Switching Spaces in a Campus (World)

LB.Actions.navigateTo({"spaceId":"YOUR_SPACE_ID"});

The spaceId is shown in the URL when visiting the space.

You can also use “next” and “previous” if your world is supposed to be sequential, i.e. if spaces need to be visited in a certain order. “next” and “previous” will simply go to the space that is either after or before the current one in the list. Using “previous” in the first space will not work, and using “next” in the last space will not work either.

Note: you can also pop-up the locations menu, so that the user can choose which space they will go to instead of forcing them to a specific one

{"action":"UI.openLocations"}

Example: call LB.Actions.navigateTo

Dialogue

[action:"navigateTo", spaceId:"YOUR_NEXT_SPACEID"]

or

[action:"UI.openLocations"]

onclick

{"action":"navigateTo", "spaceId":"YOUR_NEXT_SPACEID"}

or

{"action":"UI.openLocations"}

Script

LB.Actions.navigateTo({spaceId:"YOUR_NEXT_SPACEID"});

or

LB.Actions.UI.openLocations({});

Optimization

My space loads slowly!

There are a couple of performance considerations to make when setting up a space. All the suggestions that follow should be weighed against the specific requirements of your experience. As an additional rule of thumb, if you are designing an experience targeting more powerful devices or areas with high connection speed, you can afford to have “heavier” scenes (i.e. scenes that include more objects, or more detail). LearnBrite items are optimized to be as light as possible.

More items = more things to load

The more items are added to the scene, the heavier the scene will be to load. If multiple instances of a model are needed, it’s better to repeat the same model as opposed to having different ones.

For example, to fence off an area we might need 4 different fence models (one per side). By cloning the same model (i.e. a model with the same URL) multiple times, as opposed to using four different types of fence, fewer resources will be consumed. In the image below, the setup on the left will be more performant than the one on the right.

Realistic objects = heavier objects

While it depends on the optimization made by the original author, a good rule of thumb for models is that the more detailed they are, the heavier they will be to load. Conversely, “blockier” or more “angular” models are much lighter, as  they include less polygons. It is often good to search for the “low poly” version of an object (e.g. by searching for “hand low poly”, or “office low poly”), and consider whether the detail on that object is acceptable.

In the example below, the hand on the left will load much quicker than the hand on the right.

 

Object scale ≠ object weight

An object might appear very small in the scene, but that does not guarantee that the object itself is lighter, as scale and detail are completely independent of one another.

Using cached resources

If you are using LearnBrite’s Storage solution, you should make sure that the assets loaded in the scene are loaded from it – or another CDN, in programmer-speak. You can confirm this by looking at the URL of the item (in the field lbAssetFile) in the object’s properties, it should start with https://cache.learnbrite.com. This will not help when a user first loads the space, but it will make any future visit load much faster.

A hint about the size of models can be found by their size on LearnBrite Storage, if the 3D model is uploaded there.

For instance, in the case of glTF models:

  • If the model has a high complexity, the .bin file will be multiple megabytes; a 10MB .bin file might be acceptable if the model is of an entire room (i.e. it’s the “environment” in which you move), but otherwise you should consider optimizing the model, or choosing a different one.
  • Texture size should also be kept in check, especially for mobile devices, by using either lossless compression (i.e. decreasing file size a bit without loss of quality, with e.g. ImageOptim on macOS, or FileOptimizer on Windows), or lossy compression (i.e. decreasing file size considerably with a loss of quality, the amount of which depends on the settings used – with tools such as Photoshop, or websites like https://compressor.io/ )

loadPriority

One other way to speed up initial load (and also be more accessible to older or less powerful devices) is to “stagger” the loading of objects in the scene by using loadPriority, which sets the loading step at which this object will be loaded, from lowest to highest. If multiple objects have different load priorities, the ones with the lowest number are loaded first; then the ones with a higher number; then the ones with a higher number still; and so on (e.g. all items with priority 1; then all items with priority 2; then with 3; etc.).

To enact this, edit the properties of each object in the scene (see “How do I… → Change the settings/properties of an object in 3D?”) and add a progressively higher number to the loadPriority field.

Let’s take the following scene as a clarifying example:

  • 2 chairs (same model) with loadPriority 1
  • 2 tables (same model) with loadPriority 2
  • 1 armchair with loadPriority 3
  • 1 lamp with loadPriority 3

The two chairs will be loaded first; then the two tables; then the armchair and lamp together.

It’s best to put “important” objects on a lower loadPriority than merely decorative ones, and to put especially heavy objects on their own level of loadPriority (i.e. make them the only item with that specific loadPriority).

How should I optimize my own models/textures?

There are a couple of aspects you can take into consideration to optimize your 3D models and textures.

  1. limit texture resolution as much as possible (for details that are further away from the user, e.g. a ceiling, we would suggest to go even lower than 1024)
  2. limit the number of materials (as they impact the number of drawcalls, the least materials the better)
  3. remove any triangles that are not visible
  4. remove any unnecessary detail from models (for instance, a ceiling can often be a simple plane, all detail given by the texture).
  5. bake shadows in the textures, which gives a much higher quality feeling with ​barely any cost

Why are some avatars semi-transparent?

If a number of avatars join the same space, some of them will start changing to a transparent version of themselves. This is done for reasons of performance, and is based on distance (avatars that are further away will be transparent, avatars that are close-by won’t).

This is also applied to the landing spot: it is usually very busy with avatars, which might impact users on less powerful devices that need to load all those avatars while they are still loading the 3D environment itself; immediately upon landing in a space, therefore, users will only see transparent avatars, which will progressively load into "real" ones. As soon as a user moves from their starting hotspot, the transparent avatar will change to the real avatar.

Space Settings

How do I change the settings of a space?

See “How do I… → Change the settings of a space/world?

Virtual Meeting checkbox – collaborate in a space together

There are two ways to make a space or world multiuser: the first is by turning on the “Virtual meeting room” option when creating it:

And the second is to turn it on by checking the “Virtual meeting room” checkbox in the edit page.

UI

What is the “goggles” icon supposed to do (on different devices)

  • Toggle between 1st person and third person views on typical flat screen devices
  • On mobile it may enter “magic window” mode
  • On DayDream phones it will ask you to put the device in the headset
  • In WebVR enabled browsers (with headsets connected) it will switch to immersive VR mode

Text-to-speech

The Chinese Female voice stops before finishing the sentence

Logographic writing (such as Chinese hanji or Japanese kanji, e.g. 中文) “tricks” the algorithm that calculates the length of text-to-speech.

If you are experiencing this issue, you can fix it by changing the “Enable time estimation for TTS” setting in the “Experimental settings” section of your space to “Disabled”. For a guide on how to do so, see the “How do I change the settings of a space?” section in this same guide.

Gamification

How can I track a score in ChatMapper?

Tracking a score for the user is done routinely with ChatMapper e-learning projects through variables.

1. Creating and updating the variable in ChatMapper

In ChatMapper, create a new user variable (CTRL+SHIFT+U) with a name of your choosing and an initial value of 0.

CM_new-user-var.jpg

The same variable can also be created directly in code, by writing the following line in the Script Editor of the conversation’s first node.

Variable["CMScore"] = 0

The variable is thus declared and initialized (i.e. given an initial value), and can be then used during the scenario to record the learner’s progress, for instance by increasing it every time a correct answer is given.

CM_update-user-var.jpg

In this case, we’re increasing the CMScore variable by 1 for each correct answer, which can be done like so:

Variable["CMScore"] = Variable["CMScore"] + 1

2. Submitting the score

There is one last step in ChatMapper, which is to communicate the scenario’s outcome to the LMS. This can be done by calling “LB.Lms.submitScore”, like so:

LB.Lms.submitScore(Variable["CMScore"]);

Where Variable["CMScore"] will of course be the name of your variable, if it is different.

3. Publishing as a scenario

A series of video guides that go through the process step-by-step can be found here: https://learnbrite.com/vr-scenario-academy-scenario-authoring/. On a high level, this process consists of :

  1. Publish the scenario (will create a .json file)
  2. Create a new Scenario (https://app.learnbrite.com/dashboard/scenarios/create) and Upload the .json file
  3. Create a new space (and select the Scenario created in the previous step during creation).

How can I track a score within a space?

The easiest and quickest way to test that a score can be submitted by the platform to the chosen LMS is to create an object in the space, and call submitScore from it.

  1. In the edit menu, select “Add content”, then add any model (for instance you can search for “cube”)
  2. After the model loaded, enter edit mode, and click on the gear icon


  1. In the onclick field, click on “Edit Action”

  1. Click on “More” (the rightmost of the blue buttons at the bottom)
  2. Select “Custom action” from the dropdown
  3. Fill it with the following parameters:
  • Action Name: callFunction
  • name: LB.Lms.submitScore
  • parameter: 100

  1. Then click or tap on “Save action”,  then Save” at the bottom of the previous popup.
  2. Exit edit mode.

By clicking on the item now, a score of 100 will be submitted, and you can check that it’s reported correctly in your LMS of choice.

How can I add achievements?

See the Trophio guide

Actions

Make 3D items clickable and trigger actions (2.6+)

Version 2.6+ of scenario added onclick to supported fields for 3D items. (see Scenario Actions document for more details on available actions)

Edit mode -> Items List

In the example below we’ve added {"action":"playGesture", "name":"yes"} as an onclick event so now you can click on the Plant in the scene and your avatar will play the head-nodding gesture.

Make parts of a scene clickable (2.6+)

With Scenario version 2.6+ a new feature allows you to place transparent cubes in a scene and add an onclick trigger to them. This can be useful when you want to make static 3D models interactive. Often 3D models and scenes come as one combined model, using the transparent box trigger you can make parts of a scene responsive without needing to break the 3D model into separate components.

Edit mode -> Items List -> Add New Item

Name: BoxTrigger

Click [Save name]

Choose `Custom item` and click [Add item]

Copy the following URL

https://app.learnbrite.com/assetdb/transparentcube.js

Paste into the field, click [Add item]

A transparent box appears in the scene.

Click the Edit list icon

Find the BoxTrigger, click [Edit]

Now you can enter any scenario action you would like in the onclick field. (see Scenario Actions document for more details on available actions)

For example try:

{"action":"playGesture", "name":"yes"}

Click [Save item]

The box will be invisible in the scene, the mouse cursor will change when over the box. Clicking the box will trigger the action.

Stop Camera Position Changes after onclick action (2.9+)

Eg. I clicked an item and it did an action (play ambient) but it also changed my camera position in third person view.

To stop the camera position from being updated,  set enterCMmode to false

Eg. for your own onclick field change enterCMMode

{"action":"playConversationId","cnvid":9218,"sourceExternalId":"577f76676764b","delayMs":0,"executedFromEA":true,"getIntoCMMode":true}

To

{"action":"playConversationId","cnvid":9218,"sourceExternalId":"577f76676764b","delayMs":0,"executedFromEA":true,"getIntoCMMode":false}

And click the Save item button

How can I hide/show items?

Hide an item

LB.Utils.findItem("breathalizer").visible=false

Show an item

LB.Utils.findItem("breathalizer").visible=true

Fade out an avatar

LB.Utils.fadeObject(player().meshes,false);

Fade out an item

LB.Utils.fadeObject(LB.Utils.findItem("breathalizer"),false);

Fade in an item

LB.Utils.fadeObject(LB.Utils.findItem("breathalizer"),true);

You can also set the duration of the fade and hook things for when it ends.

This is very advanced stuff but you are welcome to use it.

Note: We will be making Actions for these type of things in the future

Mediaboards

Which YouTube URL should I use?

There are three types of YouTube URLs:

Watch URLs play the video directly on the mediaboard since version 2.9, as if it were a screen. This also happens in VR.

Although YouTube is great for experimental and proof of concept productions, occasionally the API may not respond when playing video directly in the 3D environment. For commercial productions, we recommend using services such as Vimeo, uploading your videos to our included platform storage, or simply playing videos as popups with YouTube embed URLs

Youtu.be and embed URLs before 2.11 created a popup that could not be customized, and didn’t show anything in VR. Since 2.11, those URLs create a popup that uses the displayVideo action, and can therefore be customized with the same parameters, and they work in VR as if they were watch URLs.

Notes

How to change the visual look of Notes

Click the settings icon for a note

Change innerHTML is the text that appears on the note and can include html tags eg. <img>

Change style using CSS rules, see below for some useful examples including changing the size

Example: notes with no background

Transparent background (great for notes with images)

backgroundcolor:transparent

Example: notes with black background

Black background with white text

background-color:#000000;color:white

Example: notes with semi-transparent grey with white text label size

background:rgba(1,1,1,0.5);height:70px;min-height:70px;color:white

Example: change size of a note

background-color:#ffff6d; font-size:20px; width:800px; height:50px;min-height:50px

How to use UI icons in Notes and Dialogue

Example: Laser Pointer

<i class="fa fa-bullseye fa-stack-1.5x fa-lg" aria-hidden="true"></i>

Example: Hotspot Marker

<i class="fa fa-map-marker fa-1_5x fa-lg fa-fw fa-stack-1.5x" style="color:007bff;"></i>

A full list of available icons can be found here https://fontawesome.com/v4.7.0/icons/ 

You can also get creative with rotating and stacking icons, here are some examples https://fontawesome.com/v4.7.0/examples/ 

Adding Images to Notes

The HTML <img> tag is supported. There are two things you need to add to image tags so they appear in the 3d scene and the popup correctly.

Eg. Change your original image tag

<img height="40" width="139" src="https://platform.slack-edge.com/img/add_to_slack.png">

To include the following two changes, add crossorigin="anonymous" and prepend your url with https://hurl.learnbrite.com/pr/ which will help avoid CORS loading errors.

<img crossorigin="anonymous" height="40" width="139" src="https://hurl.learnbrite.com/pr/https://platform.slack-edge.com/img/add_to_slack.png">

Multiuser / Conferencing

Roles

See User Roles 

Setting the maximum number of users in a meeting space

There are two variables you can change for a Space

maxUsers – the maximum number of users allowed in a space after which new visitors will be notified the space is full

LB.scenarioConfig.currentScene.maxUsers = 50;

instanceMaxUsers – the maximum number of users in a space before a new instance is created

LB.scenarioConfig.currentScene.instanceMaxUsers = 50;

What is the Maximum number of users in a space?

Regarding the number of users accessing an environment, that is effectively unlimited; as more and more users access the environment, we create "instances" in which they see a limited number of others (up to 50), plus presenters. This way even users on lower-end hardware, or older browsers like IE11, can have an enjoyable experience.

For conferencing, the number of supported users depends on your license:

  • VR Scenario supports max 15 conference participants per room
  • VR Workplace supports max 25 conference participants per room
  • VR Campus supports max 50 conference participants per room

Higher amounts are also available on request

iOS 12 Chrome does not support Audio and Video conferencing

We recommend using Safari.

ChatMapper

Treating Variables in ChatMapper as Text or Number

I'm watching a ChatMapper variable in the dialogue system and it’s increasing like a string rather than a number

enemy: "10"
enemy: "102"
enemy: "1020"
enemy: "1020021"

in the ChatMapper file an example script node shows

Variable["param4"] = Variable["param4"] + 100
Variable["enemy"] = Variable["enemy"] + 2
Variable["rubNum"] = 1341
Variable["dec3"] = 3
Variable["node3"]="DP 1.3.4.1"

So why would `enemy` be treated like a Text string rather than a Number?

Answer: Initial value for variables in ChatMapper

If you don’t supply an initial value the Variable will be treated as a Text variable

by setting initial value to 0 it now shows as

Scenario will now treat the Variable as a number

enemy: 4

Troubleshooting ChatMapper Exports

  • Ensure you have only one conversation set to Autoplay (since version 2.7.5 in case an author mistakenly adds more than one conversation as Autoplay a popup list will appear allowing the user to choose one of the conversations marked as Autoplay)
  • If you create a new conversation (rather than using the Explore, Actor2, Actor3, Actor4, Actor5) be sure to click the first node of the tree and select the location `Sample location`
  • Leave the Player actor’s avatar_externalId blank so the user gets their own avatar look (you can use this however if you want to override the players actor for a roleplay scenario, eg. forcing them to appear as a male nurse)
  • If you have added any files, make sure that each file is referenced only once. If the same file is referenced in more than one place (for instance an SFX mp3 referenced in two different nodes), exporting as ChatMapper package (CMPKG) will fail. To get around this, you can create a copy of the file for each different time you use it, and give it slightly different names. Some suggested schemes:
  • Adding a digit to the end of the filename, e.g. correct_answer.mp3 and correct_answer2.mp3
  • Creating a folder with the filename, and in it placing 1.mp3, 2.mp3, etc., so the final result are paths like correct_answer/1.mp3 and correct_answer/2.mp3

Why do some actions (e.g. displayImage) skip the node afterwards?

Some actions will progress the conversation to the next node before effectively “pausing” it, so when the conversation resumes it will seem like a node was skipped. We suggest adding an empty node after such actions to prevent this behaviour, if needed.

Known Issues

HLS streams

HLS streams do not appear on iOS 14

This is an issue on Apple’s side, and is fixed in iOS 14.2. Our recommendation is to make sure affected users have a quick way to access the stream directly, for example by having an additional mediaboard linking to the direct URL on top of the stream’s mediaboard (which can be set up by using the “openURLInNewWindow action, see Scenario Actions) or ask them to load the experience on another device.

3D editing

I cannot remove 3D items from my space

  • In version 2.7 or earlier you can not remove 3d items that are included in 3d templates
  • In the Seminar room, Auditorium, and Boardroom, the furniture is baked into the template and cannot be moved/removed

Error messages

Component couldn't load

This error message appears when there was some issue loading one of the components required to run the platform. Normally this is a one-time network related error that will disappear by reloading. If the issue persists, please check the details below.

ResponsiveVoice

Some browser extensions might block the text-to-speech library used by the platform. You might need to review the browser settings and allow the library to load. When ResponsiveVoice fails to load, voice will be disabled in Scenario. Subtitles will be used as a fallback, but some advanced conversations might not work properly.

Browser/Device Compatibility

Safari: too many redirects

Safari has a feature called “Intelligent Tracking Protection” (ITP) whose objective is to block cross-site tracking, but at times it can conflict with standard login processes; it can be disabled by doing the following:

iOS

  1. Open the Settings app
  2. Scroll down to Safari and tap on it
  3. Scroll down to “Prevent Cross-Site Tracking”
  4. Toggle it off so that it is white

macOS

  1. Open Safari
  2. Click on “Safari” at the top left of your screen
  3. Click on “Preferences…”
  4. Click on the “Privacy” tab
  5. Uncheck “Prevent cross-site tracking”

Android Firefox

In Android Firefox, avatars do not display. This is a known issue and has no fix at this time.

Brave Browser

Default settings in Brave browser cause a looping reload of any experience.

Compatibility with Brave browser can be achieved by choosing the Brave shield in the URL bar changing the default "Cross-site cookies blocked" to "Allow all cookies".

Complex environments on iOS

iOS imposes fairly strict limitations on browser memory, which can be triggered during load and can end up showing a white screen. If your users are experiencing this, see “My space loads slowly!” in the Optimization section, especially the part about “loadPriority”.         

© 2020 LearnBrite

Trademarks & Copyrights are property of their respective owners. Pictures are indicative only & may not reflect final production.

How useful was this article?

Click on a star to rate it!

We are sorry that this article was not useful for you!

Let us improve this article!

Tell us how we can improve this article?