<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.moodle.org/502/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jleyva</id>
	<title>MoodleDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.moodle.org/502/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jleyva"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/Special:Contributions/Jleyva"/>
	<updated>2026-05-10T00:36:32Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_security&amp;diff=155586</id>
		<title>Moodle app security</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_security&amp;diff=155586"/>
		<updated>2026-05-08T11:08:31Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Warnings typically raised by static code or AI analysis tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
&lt;br /&gt;
The Moodle app is a hybrid app (uses web-technologies) developed on top of a well-tested widely used framework called &amp;quot;Cordova&amp;quot; that provides a robust container for HTML apps.&lt;br /&gt;
&lt;br /&gt;
Security is very important to us, this is why we follow the OWASP principles, Cordova and Moodle security recommendations, we also run AI-driven security reviews with customised prompts for our particular context.&lt;br /&gt;
* Cordova: https://cordova.apache.org/docs/en/latest/guide/appdev/security/&lt;br /&gt;
* Moodle: https://docs.moodle.org/dev/Security (when developing Web Services)&lt;br /&gt;
&lt;br /&gt;
== How we approach security ==&lt;br /&gt;
&lt;br /&gt;
* Login and authorisation&lt;br /&gt;
** Authorisation is done via temporary access tokens. The duration of the access tokens can be configured via Moodle settings.&lt;br /&gt;
** Single Sign-On (or auto-login) from the app to the site is done using a special private token (that is obtained and stored when the user log-in with the app)&lt;br /&gt;
** Single Sign-On (or auto-login) from the app to the site has several additional restrictions (like limiting it in only several times per hour)&lt;br /&gt;
** QR-Login is done using temporary tokens that require the user to be in the same network (IP address) and it is limited to 10 minutes time&lt;br /&gt;
** For retrieving files from the server (images or other assets), a different non-authentication token is used.&lt;br /&gt;
&lt;br /&gt;
* Permissions&lt;br /&gt;
** The app only has access to a subset of Moodle functionalities (available through the Moodle App Service)&lt;br /&gt;
** Privileges escalation is not possible via the Web Services layer since all the operations are done in a non-privileged way, permissions are checked based on the currently authenticated user.&lt;br /&gt;
** Even if a temporary access token for an admin (or privileged user) was hijacked, it wouldn&#039;t be possible for the attacker to access to site administration functionality via the Moodle site.&lt;br /&gt;
&lt;br /&gt;
Because the app is a Webservices client we recommend to enable it only under https and use the following settings to enforce security like:&lt;br /&gt;
* Enable only certain roles to be able to access via the app via system capabilities (avoid site administrators)&lt;br /&gt;
* Use Moodle security settings to reduce the expiration time of WebService access tokens (so the user has to authenticate again)&lt;br /&gt;
* Apart from that, the Cordova framework enforces security adding restrictions like avoiding connecting to sites running non-trusted certificates.&lt;br /&gt;
&lt;br /&gt;
== What is the Moodle app security issues process? ==&lt;br /&gt;
&lt;br /&gt;
* We follow the standard Moodle security process: https://docs.moodle.org/dev/Moodle_security_procedures&lt;br /&gt;
* There is only one relevant difference: security patches are applied immediately in the next app release or in an emergency release (depending the risks attached to the issue)&lt;br /&gt;
&lt;br /&gt;
== Shared responsibility ==&lt;br /&gt;
&lt;br /&gt;
* The organisation hosting the Moodle site is also responsible for providing secure access to the Moodle site, the site should be configured to use HTTPS (secure connection) so the connection is app-to-site encrypted.&lt;br /&gt;
* Apart from the previous, the Moodle site administrator can enable additional security measures such as enforcing end-to-end encryption for Push notifications via the site administration notification settings.&lt;br /&gt;
&lt;br /&gt;
== Do you run security/penetration/pentest or static code analysis tests? ==&lt;br /&gt;
&lt;br /&gt;
We periodically run AI-driven security reviews with different models and prompts.&lt;br /&gt;
&lt;br /&gt;
We also receive automated vulnerability reports of this nature. The issue with automated tools is that they usually output generic results that indicate where an exploit may be possible, which means the results often contain many false positives.&lt;br /&gt;
&lt;br /&gt;
As mentioned above our app is built on top of Cordova, we rely on the Cordova framework developers to detect any native code issue. &lt;br /&gt;
&lt;br /&gt;
You can do a search in the Cordova project tracker to see that several runs with the Static Code Analysis Veracode tool created issues that have been already solved, see: https://issues.apache.org/jira/issues/?jql=project%20%3D%20CB%20AND%20text%20~%20%22veracode%22%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC&lt;br /&gt;
&lt;br /&gt;
Unfortunately, those Veracode runs are not publicly available because most of the time are run by external parties using the framework.&lt;br /&gt;
&lt;br /&gt;
Please, note also that there are CVE codes for Cordova security issues: https://www.cvedetails.com/product/27153/Apache-Cordova.html?vendor_id=4&lt;br /&gt;
&lt;br /&gt;
== Warnings typically raised by static code or AI analysis tools ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Lack of Jailbreak Detection&#039;&#039;&#039;  The Moodle app does not include jailbreak or root detection. This is due to the lack of official APIs from Google or Apple, and our testing of existing non-official plugins to support it showed a high rate of false positives, particularly on Android with budget devices or recent iOS updates. Notably, the app securely stores authentication tokens in the keystore/keychain, not in the session. The session token is used only for temporary content retrieval and has limited validity, ensuring that even on compromised devices, attackers cannot extract sensitive data to perform impersonation attacks.&lt;br /&gt;
* &#039;&#039;&#039;No Certificate Pinning&#039;&#039;&#039;  The Moodle app does not support certificate pinning because it is designed to connect to any Moodle site globally (there are hundreds of thousands of sites, each one with its own URL, using Moodle), whether hosted on HTTPS, HTTP, or local networks. Additionally, the Cordova framework we rely on does not natively support certificate pinning.&lt;br /&gt;
* &#039;&#039;&#039;Lack of Encryption for Manifest Files&#039;&#039;&#039;  The app does not include sensitive keys or certificates in publicly accessible files, eliminating the need for encryption of manifest files. The Firebase certificates available in the app’s GitHub repository are bound to the app’s fingerprint, ensuring they cannot be exploited.&lt;br /&gt;
* &#039;&#039;&#039;Static Web Service Authentication Tokens (Session Fixation)&#039;&#039;&#039;  Web service tokens are not regenerated with each login by design. This aligns with how the Moodle Web Services API operates, allowing users to connect across multiple devices (e.g., phone and tablet) without invalidating tokens. Regenerating tokens would restrict multi-device access.&lt;br /&gt;
* &#039;&#039;&#039;Lack of Code Obfuscation&#039;&#039;&#039;  The Moodle app code is open source. Since no keys or private data are generated during compilation, code obfuscation is not necessary.&lt;br /&gt;
* &#039;&#039;&#039;cleartextTrafficPermitted set to true&#039;&#039;&#039; The Moodle app allows connecting to any Moodle site, no matter if it uses SSL or not. This setting is required to allow connecting to http sites (for example in local networks).&lt;br /&gt;
* &#039;&#039;&#039;Content-Security-Policy is very permissive&#039;&#039;&#039; The Moodle app allows connecting to any Moodle site, so the CSP cannot be pinned to a list of URLs. unsafe-eval is required to allow running the Javascript code of Moodle plugins adapted to the app. unsafe-inline is needed because user generated content can include inline styles.&lt;br /&gt;
* &#039;&#039;&#039;Use of eval&#039;&#039;&#039; The app uses &#039;&#039;eval&#039;&#039; to dynamically run Javascript code from plugins that have been adapted to the app. In the future this will probably be replaced by &amp;quot;new Function()&amp;quot; to improve scope isolation, but it will still be dynamic code execution. eval is used only for running trusted code (plugins installed by site administrators on the Moodle site).&lt;br /&gt;
* &#039;&#039;&#039;Use of Math.random or MD5 for SSO passports:&#039;&#039;&#039; The app this functions for generating one-use temporary ids just to identify the device from a SSO was launched from, but it does not have any security implication, tampering or capturing those temporary ids don&#039;t have any security implications.&lt;br /&gt;
* &#039;&#039;&#039;Improper Session Timeout &amp;amp; Logout Function&#039;&#039;&#039;  The Moodle app follows a common approach used by most mobile apps on Android and iOS, where users are not prompted to log in repeatedly after short periods of inactivity. Mobile devices provide adequate protection through features such as automatic locking when inactive.  However, Moodle site administrators have full control over how the app handles session timeouts and logout behavior. They can:&lt;br /&gt;
** Define how the logout function works (soft logout or complete session termination).&lt;br /&gt;
** Set a custom session timeout duration.&lt;br /&gt;
** Configure the duration of the Web Service authentication token.&lt;br /&gt;
&lt;br /&gt;
These configurations can be managed through:&lt;br /&gt;
** &#039;&#039;&#039;Site administration &amp;gt; Mobile app authentication settings&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;Site administration &amp;gt; Security settings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[es:Seguridad de Moodle app]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_security&amp;diff=155584</id>
		<title>Moodle app security</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_security&amp;diff=155584"/>
		<updated>2026-05-08T08:05:57Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
&lt;br /&gt;
The Moodle app is a hybrid app (uses web-technologies) developed on top of a well-tested widely used framework called &amp;quot;Cordova&amp;quot; that provides a robust container for HTML apps.&lt;br /&gt;
&lt;br /&gt;
Security is very important to us, this is why we follow the OWASP principles, Cordova and Moodle security recommendations, we also run AI-driven security reviews with customised prompts for our particular context.&lt;br /&gt;
* Cordova: https://cordova.apache.org/docs/en/latest/guide/appdev/security/&lt;br /&gt;
* Moodle: https://docs.moodle.org/dev/Security (when developing Web Services)&lt;br /&gt;
&lt;br /&gt;
== How we approach security ==&lt;br /&gt;
&lt;br /&gt;
* Login and authorisation&lt;br /&gt;
** Authorisation is done via temporary access tokens. The duration of the access tokens can be configured via Moodle settings.&lt;br /&gt;
** Single Sign-On (or auto-login) from the app to the site is done using a special private token (that is obtained and stored when the user log-in with the app)&lt;br /&gt;
** Single Sign-On (or auto-login) from the app to the site has several additional restrictions (like limiting it in only several times per hour)&lt;br /&gt;
** QR-Login is done using temporary tokens that require the user to be in the same network (IP address) and it is limited to 10 minutes time&lt;br /&gt;
** For retrieving files from the server (images or other assets), a different non-authentication token is used.&lt;br /&gt;
&lt;br /&gt;
* Permissions&lt;br /&gt;
** The app only has access to a subset of Moodle functionalities (available through the Moodle App Service)&lt;br /&gt;
** Privileges escalation is not possible via the Web Services layer since all the operations are done in a non-privileged way, permissions are checked based on the currently authenticated user.&lt;br /&gt;
** Even if a temporary access token for an admin (or privileged user) was hijacked, it wouldn&#039;t be possible for the attacker to access to site administration functionality via the Moodle site.&lt;br /&gt;
&lt;br /&gt;
Because the app is a Webservices client we recommend to enable it only under https and use the following settings to enforce security like:&lt;br /&gt;
* Enable only certain roles to be able to access via the app via system capabilities (avoid site administrators)&lt;br /&gt;
* Use Moodle security settings to reduce the expiration time of WebService access tokens (so the user has to authenticate again)&lt;br /&gt;
* Apart from that, the Cordova framework enforces security adding restrictions like avoiding connecting to sites running non-trusted certificates.&lt;br /&gt;
&lt;br /&gt;
== What is the Moodle app security issues process? ==&lt;br /&gt;
&lt;br /&gt;
* We follow the standard Moodle security process: https://docs.moodle.org/dev/Moodle_security_procedures&lt;br /&gt;
* There is only one relevant difference: security patches are applied immediately in the next app release or in an emergency release (depending the risks attached to the issue)&lt;br /&gt;
&lt;br /&gt;
== Shared responsibility ==&lt;br /&gt;
&lt;br /&gt;
* The organisation hosting the Moodle site is also responsible for providing secure access to the Moodle site, the site should be configured to use HTTPS (secure connection) so the connection is app-to-site encrypted.&lt;br /&gt;
* Apart from the previous, the Moodle site administrator can enable additional security measures such as enforcing end-to-end encryption for Push notifications via the site administration notification settings.&lt;br /&gt;
&lt;br /&gt;
== Do you run security/penetration/pentest or static code analysis tests? ==&lt;br /&gt;
&lt;br /&gt;
We periodically run AI-driven security reviews with different models and prompts.&lt;br /&gt;
&lt;br /&gt;
We also receive automated vulnerability reports of this nature. The issue with automated tools is that they usually output generic results that indicate where an exploit may be possible, which means the results often contain many false positives.&lt;br /&gt;
&lt;br /&gt;
As mentioned above our app is built on top of Cordova, we rely on the Cordova framework developers to detect any native code issue. &lt;br /&gt;
&lt;br /&gt;
You can do a search in the Cordova project tracker to see that several runs with the Static Code Analysis Veracode tool created issues that have been already solved, see: https://issues.apache.org/jira/issues/?jql=project%20%3D%20CB%20AND%20text%20~%20%22veracode%22%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC&lt;br /&gt;
&lt;br /&gt;
Unfortunately, those Veracode runs are not publicly available because most of the time are run by external parties using the framework.&lt;br /&gt;
&lt;br /&gt;
Please, note also that there are CVE codes for Cordova security issues: https://www.cvedetails.com/product/27153/Apache-Cordova.html?vendor_id=4&lt;br /&gt;
&lt;br /&gt;
== Warnings typically raised by static code or AI analysis tools ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Lack of Jailbreak Detection&#039;&#039;&#039;  The Moodle app does not include jailbreak or root detection. This is due to the lack of official APIs from Google or Apple, and our testing of existing non-official plugins to support it showed a high rate of false positives, particularly on Android with budget devices or recent iOS updates. Notably, the app securely stores authentication tokens in the keystore/keychain, not in the session. The session token is used only for temporary content retrieval and has limited validity, ensuring that even on compromised devices, attackers cannot extract sensitive data to perform impersonation attacks.&lt;br /&gt;
* &#039;&#039;&#039;No Certificate Pinning&#039;&#039;&#039;  The Moodle app does not support certificate pinning because it is designed to connect to any Moodle site globally (there are hundreds of thousands of sites, each one with its own URL, using Moodle), whether hosted on HTTPS, HTTP, or local networks. Additionally, the Cordova framework we rely on does not natively support certificate pinning.&lt;br /&gt;
* &#039;&#039;&#039;Lack of Encryption for Manifest Files&#039;&#039;&#039;  The app does not include sensitive keys or certificates in publicly accessible files, eliminating the need for encryption of manifest files. The Firebase certificates available in the app’s GitHub repository are bound to the app’s fingerprint, ensuring they cannot be exploited.&lt;br /&gt;
* &#039;&#039;&#039;Static Web Service Authentication Tokens (Session Fixation)&#039;&#039;&#039;  Web service tokens are not regenerated with each login by design. This aligns with how the Moodle Web Services API operates, allowing users to connect across multiple devices (e.g., phone and tablet) without invalidating tokens. Regenerating tokens would restrict multi-device access.&lt;br /&gt;
* &#039;&#039;&#039;Lack of Code Obfuscation&#039;&#039;&#039;  The Moodle app code is open source. Since no keys or private data are generated during compilation, code obfuscation is not necessary.&lt;br /&gt;
* &#039;&#039;&#039;Improper Session Timeout &amp;amp; Logout Function&#039;&#039;&#039;  The Moodle app follows a common approach used by most mobile apps on Android and iOS, where users are not prompted to log in repeatedly after short periods of inactivity. Mobile devices provide adequate protection through features such as automatic locking when inactive.  However, Moodle site administrators have full control over how the app handles session timeouts and logout behavior. They can:&lt;br /&gt;
** Define how the logout function works (soft logout or complete session termination).&lt;br /&gt;
** Set a custom session timeout duration.&lt;br /&gt;
** Configure the duration of the Web Service authentication token.&lt;br /&gt;
&lt;br /&gt;
These configurations can be managed through:&lt;br /&gt;
** &#039;&#039;&#039;Site administration &amp;gt; Mobile app authentication settings&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;Site administration &amp;gt; Security settings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[es:Seguridad de Moodle app]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_offline_features&amp;diff=155359</id>
		<title>Moodle app offline features</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_offline_features&amp;diff=155359"/>
		<updated>2026-04-16T09:43:54Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Moodle App Plans */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
We live in a hyper-connected 5G world and we think the Internet is everywhere, but we usually forget about: &lt;br /&gt;
&lt;br /&gt;
* Underdeveloped and developing countries&lt;br /&gt;
* Rural areas in big countries&lt;br /&gt;
* Kids with restricted data plans&lt;br /&gt;
* Shared internet connection in schools/classrooms&lt;br /&gt;
* Aerial and maritime traffic&lt;br /&gt;
&lt;br /&gt;
One of the most powerful features of the Moodle app is that it enables us to work offline.&lt;br /&gt;
&lt;br /&gt;
Students can browse course contents offline and participate in activities, then once they are connected back to the Internet, the app will synchronise all the necessary information with their Moodle site.&lt;br /&gt;
&lt;br /&gt;
== How does the app store data for offline use? ==&lt;br /&gt;
&lt;br /&gt;
* While browsing the site and its contents, though note that external contents (e.g. YouTube videos) are not downloaded and embedded files (audio, video) are not always downloaded (it depends on the user connection and file size)&lt;br /&gt;
* When the user downloads content by the download icon&lt;br /&gt;
** The user can use the “cloud” icon to download specific content or a complete section or course&lt;br /&gt;
** The user gets alerted when downloading large files&lt;br /&gt;
** If a resource has been updated in the server, a refresh icon will be shown.&lt;br /&gt;
&lt;br /&gt;
===Why doesn’t the app pre-fetch/cache more data?===&lt;br /&gt;
# Because the user may have a monthly data plan&lt;br /&gt;
# Because the device storage space may be limited&lt;br /&gt;
# Massive data download might impact on the server performance&lt;br /&gt;
&lt;br /&gt;
===What does the app consider to be a large file?===&lt;br /&gt;
* If the user is connected to a Wi-Fi network: large file &amp;gt;= 20MB&lt;br /&gt;
*If the user is connected to a data network:  large file &amp;gt;= 2MB&lt;br /&gt;
&lt;br /&gt;
== Course features offline support ==&lt;br /&gt;
&lt;br /&gt;
* All course resources can be downloaded for offline (except URL)&lt;br /&gt;
* All course activities are supported (except Chat and External tool)&lt;br /&gt;
* Additional (non-standard) plugins usually don’t work offline&lt;br /&gt;
* Some functionality for certain activity modules does not work offline, see below for more information.&lt;br /&gt;
&lt;br /&gt;
=== Assessment ===&lt;br /&gt;
&lt;br /&gt;
The offline mode is disabled by default in Quiz and Lesson, however, the teacher can decide if they want to enable it.&lt;br /&gt;
* A quiz may be attempted offline only if:&lt;br /&gt;
** There is no time limit set&lt;br /&gt;
** The question behavior is deferred feedback (with or without CBM) only&lt;br /&gt;
** New in &#039;&#039;&#039;Moodle 4.3.1&#039;&#039;&#039;  - the Quiz uses sequential navigation.&lt;br /&gt;
** There is no network address requirement&lt;br /&gt;
&lt;br /&gt;
For detailed information about Quiz and how it works offline please see [[Moodle Mobile quiz offline attempts]].&lt;br /&gt;
&lt;br /&gt;
=== Other activities ===&lt;br /&gt;
* SCORM and H5P packages are downloaded to the user’s device by default, there are settings to control this behaviour in order to prevent the packages from being downloaded (check this support pages for more information, [[Moodle app SCORM player]] and [[Moodle app H5P support]]).&lt;br /&gt;
* Wiki editing is not supported offline&lt;br /&gt;
* Glossaries entries can’t be deleted/updated offline&lt;br /&gt;
* Text assignment submissions can’t be edited offline&lt;br /&gt;
* Activities configured with availability conditions cannot be/are not downloaded for offline (the user will have to reconnect to be able to see activities unlocked by conditions recently met)&lt;br /&gt;
&lt;br /&gt;
== What other features work offline?==&lt;br /&gt;
&lt;br /&gt;
Apart from resources and activities certain course and site functionality are also available offline.&lt;br /&gt;
&lt;br /&gt;
The offline support for completion is only for marking courses or activities completed (when viewed).&lt;br /&gt;
&lt;br /&gt;
Conditioned activities are not downloaded for offline.&lt;br /&gt;
&lt;br /&gt;
* Participants&lt;br /&gt;
* Grades&lt;br /&gt;
* Completion&lt;br /&gt;
* Notes&lt;br /&gt;
* Messaging&lt;br /&gt;
* Notifications&lt;br /&gt;
* Calendar events&lt;br /&gt;
* Private files&lt;br /&gt;
* Badges&lt;br /&gt;
* Blogs&lt;br /&gt;
* Rating&lt;br /&gt;
* Comments&lt;br /&gt;
&lt;br /&gt;
== Synchronisation == &lt;br /&gt;
&lt;br /&gt;
Synchronisation works differently depending on the device&lt;br /&gt;
* Android: The app must be opened but it can be in the background (you can be using a different app).&lt;br /&gt;
* iOS (iPhone, iPad): The app must be opened and in the foreground (it has to be the device active app).&lt;br /&gt;
* Desktop: The app must be opened but it can be in the background (minimised).&lt;br /&gt;
&lt;br /&gt;
🔋The battery is the key factor, mobile OS limits its usage&lt;br /&gt;
&lt;br /&gt;
There are two ways of synchronising data:&lt;br /&gt;
&lt;br /&gt;
* Automatic&lt;br /&gt;
** Runs regularly, every 10 minutes&lt;br /&gt;
* Manual&lt;br /&gt;
** The user will see a message indicating there is data pending synchronisation&lt;br /&gt;
&lt;br /&gt;
===What happens with the student activity after synchronisation?===&lt;br /&gt;
Actions performed offline are logged and stored into the system with the synchronisation time, not with the time when they happened.&lt;br /&gt;
We are exploring ways to improve reporting via Moodle’s xAPI support.&lt;br /&gt;
&lt;br /&gt;
For more information about how synchronisation works see [[Moodle app synchronization]].&lt;br /&gt;
&lt;br /&gt;
== Configuration options ==&lt;br /&gt;
&lt;br /&gt;
Site administrators can decide if they want:&lt;br /&gt;
* Disable completely the offline mode&lt;br /&gt;
* Disable all courses downloading&lt;br /&gt;
* Disable individual courses downloading&lt;br /&gt;
&lt;br /&gt;
For disabling the previous features, please see [[Moodle app guide for admins]].&lt;br /&gt;
&lt;br /&gt;
Users can decide if they want to allow synchronisation only when connected to a Wi-Fi network or also when using a data network.&lt;br /&gt;
&lt;br /&gt;
==Moodle App Plans ==&lt;br /&gt;
&lt;br /&gt;
When using the Moodle App, site admins can choose to subscribe to a paid plan or use the free version. &lt;br /&gt;
&lt;br /&gt;
Plans limit the download of complete courses in one click.&lt;br /&gt;
&lt;br /&gt;
Students can still download individual contents or sections.&lt;br /&gt;
&lt;br /&gt;
We recommend a [https://apps.moodle.com/local/apps/signup_site.php?plan=premium&amp;amp;origin=moodledocs Premium plan subscription].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Moodle app SCORM player]]&lt;br /&gt;
* [[Moodle app H5P support]]&lt;br /&gt;
* [[Moodle Mobile quiz]]&lt;br /&gt;
* [[Moodle app synchronization]]&lt;br /&gt;
* [https://www.youtube.com/watch?v=LqwG2XfSSiQ Use case: Scaling school leadership training through app-based Moodle learning] &lt;br /&gt;
* [https://www.youtube.com/watch?v=nk3SJuDduNs Use case: Reaching every learner; Scalable offline-first Moodle for African education]&lt;br /&gt;
&lt;br /&gt;
[[es:Características de Moodle app sin conexión]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_notifications&amp;diff=155358</id>
		<title>Moodle app notifications</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_notifications&amp;diff=155358"/>
		<updated>2026-04-16T09:35:26Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* For administrators */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
&lt;br /&gt;
==For students and teachers==&lt;br /&gt;
[[File:12Notifications.png|thumb|Forum post notification]]&lt;br /&gt;
The Moodle mobile app lets you keep up to date with all that&#039;s happening in your courses and on the site. Every time you open the app, events are synchronised with the website.&lt;br /&gt;
&lt;br /&gt;
You will receive [[Calendar|Moodle calendar]] event notifications automatically. If you don&#039;t want to get them, you can turn them all off individually (or globally) in the Calendar events options in the main menu.&lt;br /&gt;
&lt;br /&gt;
You will also receive notifications of messages, forum posts, submitted assignments etc. (known as &#039;push notifications&#039;) if your site administrator has enabled these. To receive these notifications you need to enable them EITHER via the app OR via the website.&lt;br /&gt;
&lt;br /&gt;
To enable mobile notifications via the app:&lt;br /&gt;
&lt;br /&gt;
# Go to the app settings then Notification preferences&lt;br /&gt;
# Move the slider so that disable notifications is off&lt;br /&gt;
# Move the slider to turn on notifications for assignment, feedback, forum etc. as required&lt;br /&gt;
&lt;br /&gt;
To enable mobile notifications via the website:&lt;br /&gt;
&lt;br /&gt;
# Go to your user menu (top right of each page) and select Preferences&lt;br /&gt;
# Click the link &#039;Notification preferences&#039;&lt;br /&gt;
# Click to turn on notifications for assignment, feedback, forum etc. as required&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| [[File:notification preferences app.png|thumb|Notification preferences in the app]]&lt;br /&gt;
| [[File:notification preferences web.png|thumb|Notification preferences on website]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==For administrators==&lt;br /&gt;
&lt;br /&gt;
Push notifications can be enabled by an administrator by connecting their Moodle site to a messaging server such https://messages.moodle.net (available for [[Site registration|registered Moodle sites]] only). An access key can be obtained via &#039;&#039;Site administration &amp;gt; General &amp;gt; Messaging &amp;gt; Notification settings&#039;&#039;; be sure the &#039;Mobile&#039; is enabled and then click the link to settings, on the next page select &#039;&#039;Request access key&#039;&#039;. (For Moodle site versions 3.5 and 3.6 an access key can be obtained via &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Message outputs &amp;gt; Manage message outputs&#039;&#039;. Then by clicking the link to the Mobile settings, on the next page select &#039;&#039;Request access key&#039;&#039;.)&lt;br /&gt;
&lt;br /&gt;
Note that from 2 April 2020, there will be certain limitations when using push notifications. Depending on the size of your site and the number of user devices receiving notifications, you may need to [https://apps.moodle.com/local/apps/signup_site.php?plan=premium&amp;amp;origin=moodledocs sign up to a Premium plan] in the Moodle Apps portal. For further information, see the official announcement [https://moodle.org/mod/forum/discuss.php?d=397926 Introducing our new Moodle App plans].&lt;br /&gt;
&lt;br /&gt;
You can enable by default Mobile notifications for your students, please read the &amp;quot;Default message outputs&amp;quot; section in [[Messaging settings]].&lt;br /&gt;
&lt;br /&gt;
If you have problems requesting the access key, please register your site on the Moodle Apps Portal https://apps.moodle.com once your site is registered there, an Airnotifier access key will be automatically generated for you.&lt;br /&gt;
&lt;br /&gt;
Users then need to connect at least once with the latest version of the Moodle Mobile app in order to register their phones with the Moodle site.&lt;br /&gt;
&lt;br /&gt;
=== Encrypted Push Notifications ===&lt;br /&gt;
&lt;br /&gt;
Encrypted push notifications are available in Moodle LMS 4.1.4 and later, and in Moodle App 4.2 and later.&lt;br /&gt;
&lt;br /&gt;
To enable encrypted push notifications, go to Site administration &amp;gt; Messaging &amp;gt; Mobile and select ‘Encrypt notifications’.&lt;br /&gt;
&lt;br /&gt;
When encrypted notifications are enabled, any information or data in the notifications that could potentially identify a user is encrypted using the Curve25519/X25519 encryption algorithm. This guarantees full compliance with GDPR for organisations that want to prevent their data from being transmitted without encryption through any processing server.&lt;br /&gt;
&lt;br /&gt;
The generated key pair (public and private) used to encrypt notifications is securely stored in the keystore or keychain of each device that receives notifications from your site.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Limitations of encrypted push notifications&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* At least Android 8 or iOS 13 are required on devices receiving notifications. Older versions of these systems are not supported.&lt;br /&gt;
* Rich push notifications (notifications with media attachments) are not supported.&lt;br /&gt;
* Some notifications may not redirect to the appropriate page or section within the app.&lt;br /&gt;
* If the size of the notification content is too big, it will be replaced with the message ‘Tap to view text’.&lt;br /&gt;
* For iOS devices only: If the Moodle App is not in the background or foreground of devices, some notifications might not be received. This is a native iOS limitation and is based on a number of factors, such as devices’ CPU usage, notifications’ priority level (data-only messages are considered ‘low priority’ by iOS), battery level, etc. You can read additional technical information in this discussion: https://github.com/firebase/flutterfire/issues/9300.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Troubleshooting&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* After upgrading your Moodle site to a version that supports encrypted push notifications (Moodle LMS 4.1.4 or later), it’s important to note that your users will only start receiving encrypted notifications once they access your upgraded site through their Moodle App for the first time.&lt;br /&gt;
* To verify if a device supports encrypted push notifications, follow these steps:&lt;br /&gt;
# Open the Moodle App and access the &#039;More&#039; menu (represented by three dots).&lt;br /&gt;
# Select &#039;App settings&#039; and then choose &#039;About&#039;.&lt;br /&gt;
# On the &#039;About&#039; page, tap on the App version (Moodle Mobile X.X) at the bottom.&lt;br /&gt;
# A new page titled &#039;Device info&#039; will appear.&lt;br /&gt;
# Scroll to the bottom of the &#039;Device info&#039; page to locate the section ‘Encrypted push notifications supported.’&lt;br /&gt;
Please note that this indicates whether a device can support encrypted push notifications, but it doesn’t necessarily mean that they have been enabled on a specific Moodle site.&lt;br /&gt;
&lt;br /&gt;
=== Event Reminders plugin===&lt;br /&gt;
&lt;br /&gt;
Push notifications can also include calendar event notifications, however this requires the [https://moodle.org/plugins/view/local_reminders Event Reminders plugin] to be installed on the Moodle site.&lt;br /&gt;
&lt;br /&gt;
The Event Reminders plugin will automatically send reminders for Moodle calendar events in a timely manner via Moodle message interface. It also allows users to control how they receive messages for each type of event in the Moodle calendar.&lt;br /&gt;
&lt;br /&gt;
=== Installing your own notifications infrastructure ===&lt;br /&gt;
&lt;br /&gt;
If you have a customized version of the Moodle Mobile app, or you want to use your own notifications infrastructure, you will have to install a private [http://airnotifier.github.io AirNotifier] (backend server for notifications).&lt;br /&gt;
&lt;br /&gt;
Please notice that Moodle HQ does not maintain or offer any support for any Airnotifier-related issues. Moodle HQ has funded and contributed with some fixes to this software but it is not officially maintaining or supporting it.&lt;br /&gt;
&lt;br /&gt;
Moodle offers a branded app service including a private notifications infrastructure, for more information visit https://moodle.com/mobileapp/&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
If your users are not receiving push notifications please check:&lt;br /&gt;
&lt;br /&gt;
* You have not exceeded the maximum number of active devices according to your Moodle App Plan. You can register for free on https://apps.moodle.com to check your current active user devices to check if you need to upgrade to a [https://apps.moodle.com/local/apps/signup_site.php?plan=premium&amp;amp;origin=moodledocs Premium plan].&lt;br /&gt;
* You have entered an Airnotifier access key in the Mobile settings in the Site administration&lt;br /&gt;
* Mobile is enabled in Messaging &amp;gt; Notification settings in the Site administration&lt;br /&gt;
* In your config.php, $CFG-&amp;gt;noemailever is not set to true (or it does not exist)&lt;br /&gt;
* Any user not receiving notifications has enabled mobile notifications in the mobile app in App settings &amp;gt; Notification preferences then check that &amp;quot;Disable notifications&amp;quot; is not selected&lt;br /&gt;
* Any user not receiving notifications has enabled the type of notifications they want to receive in App settings &amp;gt; Notification preferences&lt;br /&gt;
* Any user not receiving notifications hasn&#039;t disabled his current device in App settings &amp;gt; Notification preferences &amp;gt; 3 dots menu &amp;gt; Configure devices&lt;br /&gt;
* Mobile notifications are not disallowed by an administrator in &#039;Default message outputs&#039; in the Site administration&lt;br /&gt;
* Mobile notifications are enabled in the user&#039;s Android phone (Settings &amp;gt; Apps &amp;gt; Moodle Mobile &amp;gt; Show notifications ticked) or iOS phone (in iOS in Settings -&amp;gt; Moodle Mobile &amp;gt; Notifications)&lt;br /&gt;
* The server where your Moodle site is installed is able to connect to messages.moodle.net (port 443) via telnet&lt;br /&gt;
* You are using the Moodle Mobile official app. If you are using a custom/branded app for your institution, please contact your institution since custom apps need their own notifications infrastructure (see above).&lt;br /&gt;
* Your Moodle installation cron jobs are not locked. You can check it executing the CRON manually and reading the output, more info [https://moodle.org/mod/forum/discuss.php?d=361595 here]&lt;br /&gt;
&lt;br /&gt;
=== Testing push notifications ===&lt;br /&gt;
&lt;br /&gt;
To test push notifications:&lt;br /&gt;
&lt;br /&gt;
# Ensure that mobile notifications are enabled (as described above).&lt;br /&gt;
# Go to a course and create a forum with forced subscription.&lt;br /&gt;
# Log in as a student and create a new discussion in the forum.&lt;br /&gt;
# As the same student, log in on the mobile app, go to App settings &amp;gt; Notification preferences &amp;gt; Forum and enable all the notifications.&lt;br /&gt;
# In the same page, check that at the top of the page you see &amp;quot;You are configuring Mobile notifications&amp;quot;. If it says &amp;quot;You are configuring notifications for web (or email)&amp;quot;, switch to mobile via the three dots menu at the top right.&lt;br /&gt;
# In the same page, tap the three dots menu (top right), go to Configure devices and check that your current device is enabled.&lt;br /&gt;
# Now, put the Moodle Mobile app in background (switching to a different app or going to your device home).&lt;br /&gt;
# Log in to the site (on the web) and post a reply to the discussion started by the student., ticking the option &amp;quot;Send forum post notifications with no editing-time delay&amp;quot;.&lt;br /&gt;
# Verify that the student receives a push notification on their mobile device.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://docs.moodle.org/en/Moodle_app_FAQ#I_don.27t_receive_calendar_notifications_.28reminders.29_when_using_Android_12_or_above I don&#039;t receive calendar notifications (reminders) when using Android 12 or above]&lt;br /&gt;
* [https://docs.moodle.org/en/Moodle_app_FAQ#How_notifications_icon_badges_are_updated How notifications icon badges are updated]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[de:Moodle App - Systemnachrichten]]&lt;br /&gt;
[[ca:Notificacions de la app Mobile]]&lt;br /&gt;
[[es:Mobile app Notificaciones Push]]&lt;br /&gt;
[[fr:Notifications de l&#039;app mobile]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_guide_for_admins&amp;diff=155357</id>
		<title>Moodle app guide for admins</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_guide_for_admins&amp;diff=155357"/>
		<updated>2026-04-16T09:34:13Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Register your site on the Moodle Apps Portal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
==Enable mobile services on your site==&lt;br /&gt;
Your site needs to have mobile access enabled so users can use the mobile app.&lt;br /&gt;
&lt;br /&gt;
For sites using https, mobile access is enabled by default in new installations of Moodle 3.0 onwards.&lt;br /&gt;
&lt;br /&gt;
For http sites, mobile access can be enabled by an administrator as follows:&lt;br /&gt;
# In &#039;&#039;Site administration &amp;gt; Mobile app &amp;gt; Mobile settings&#039;&#039; tick the &#039;Enable web services for mobile devices&#039; checkbox. (For 4.0 version: In &#039;&#039;Site administration &amp;gt; Advanced features&#039;&#039; tick the &#039;Enable web services for mobile devices&#039; checkbox&lt;br /&gt;
# Click the button to save changes.&lt;br /&gt;
If your site uses a [https://en.wikipedia.org/wiki/Transport_Layer_Security SSL certificate], it must be a trusted certificate. For security reasons the app doesn&#039;t work with self-signed certificates.&lt;br /&gt;
&lt;br /&gt;
Please, verify that your certificate is valid via: https://www.geocerts.com/ssl_checker (you shouldn&#039;t see any warning).&lt;br /&gt;
&lt;br /&gt;
If your site has the /login directory protected (frequently done when using the Shibboleth authentication method), you must enable access to the login/token.php script.&lt;br /&gt;
===Frame embedding===&lt;br /&gt;
If your sites uses [https://en.wikipedia.org/wiki/ReCAPTCHA reCaptcha], Vimeo videos or custom menu items (as described bellow) you must enable the admin setting &amp;quot;Allow frame embedding&amp;quot; (allowframembedding). Please, note this is not necessary since Moodle 3.7&lt;br /&gt;
===Is your site behind a proxy, or load balancer or complex network infrastructure?===&lt;br /&gt;
In that case, you may need to configure the &amp;quot;Ignore reserver proxies&amp;quot; settings in Site administration &amp;gt; Administration &amp;gt; Server &amp;gt; HTTP&lt;br /&gt;
==Register your site on the Moodle Apps Portal==&lt;br /&gt;
We strongly recommend you to register your site for free on the Moodle Apps portal: https://apps.moodle.com&lt;br /&gt;
&lt;br /&gt;
You will be able to retrieve statistics like the number of active user devices receiving Push Notifications and [https://apps.moodle.com/local/apps/signup_site.php?plan=premium&amp;amp;origin=moodledocs upgrade to a Premium plan] for enjoying exclusive features.&lt;br /&gt;
&lt;br /&gt;
==Simplify user onboarding==&lt;br /&gt;
Upon opening the Moodle app, first-time users encounter a &amp;quot;Your site&amp;quot; field, where they have to input the URL of their Moodle site to access their courses. To ensure a smooth onboarding experience for new users, follow these steps:&lt;br /&gt;
# Enable the &#039;&#039;&#039;Site finder&#039;&#039;&#039; feature that allows users to find their Moodle site by name, eliminating the need to manually enter the site URL. To enable this feature, view [[Moodle app guide for admins#Have your site listed in the Moodle app site finder|Have your site listed in the Moodle app site finder]] below.&lt;br /&gt;
# Enable the &#039;&#039;&#039;QR login&#039;&#039;&#039; feature (view [[Moodle app guide for admins#QR Login|instructions]] below). This feature allows users to scan a QR code available on their Moodle profile to access their Moodle site directly from the app. &lt;br /&gt;
# For Android users and Moodle LMS 4.3 and later: Encourage users to install the Moodle app by following the &#039;&#039;&#039;Get the mobile app&#039;&#039;&#039; link at the bottom of any Moodle page (located within the &amp;quot;&#039;&#039;&#039;?&#039;&#039;&#039;&amp;quot; icon on the desktop version). When users install the app through this link, they will be automatically redirected to their site login screen, eliminating the need to manually enter the site URL.&lt;br /&gt;
# Alternatively, you can create a dedicated help page for the Moodle app. This help page should include a link to the Google Play version of the app and clearly indicate the site URL referrer. For example, if your Moodle site is mymoodlesite.com the link will be https://play.google.com/store/apps/details?id=com.moodle.moodlemobile&amp;amp;referrer=siteurl%3Dhttps%3A%2F%2Fmymoodlesite.com&lt;br /&gt;
Please note that options 3&amp;amp;4 are not compatible with Google Workspace accounts (the installation referrer will be ignored in that case).&lt;br /&gt;
==Have your site listed in the Moodle app site finder==&lt;br /&gt;
The Moodle apps site finder enables a user to easily find their Moodle site by entering the name (no need to enter the site URL)&lt;br /&gt;
===How can I have my site listed in the Moodle app site finder?===&lt;br /&gt;
Your site will be automatically listed in the site finder if:&lt;br /&gt;
* either your site is registered and listed with a link on [https://stats.moodle.org/sites/ Registered sites] and has over five hundred mobile users and you have been using the Moodle app for over a year&lt;br /&gt;
* or you have purchased a [https://moodle.com/app/ Pro or Premium Moodle app subscription].&lt;br /&gt;
You can arrange for your site to be listed in the site finder as follows:&lt;br /&gt;
* If your site is hosted by a Moodle Partner, please contact them to request for your site to be listed. &lt;br /&gt;
* If you have a MoodleCloud site, please log in to the Moodle Apps Portal where you will find an option to have your site listed.&lt;br /&gt;
Otherwise, to have your site listed in the site finder, you need to purchase a [https://moodle.com/app/ Pro or Premium Moodle app subscription] from the Moodle Apps Portal.&lt;br /&gt;
===I don’t want my site listed in the Moodle app site finder. How can I remove it?===&lt;br /&gt;
You can remove your site from the site finder as follows:&lt;br /&gt;
# Log in to the [https://apps.moodle.com/ Moodle Apps Portal]. (If you don&#039;t yet have an account, you can create one for free.)&lt;br /&gt;
# Go to ‘App customisation’ -&amp;gt; ‘Site Listing’ and uncheck the option ‘Visible’ then save changes. &lt;br /&gt;
Your site will then be immediately removed from the site finder.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can remove your site from the site finder by updating your site registration:&lt;br /&gt;
# Log in to your Moodle site as admin and go to ‘Site administration’ -&amp;gt; Registration.&lt;br /&gt;
# Change ‘Site listing’ to either ‘Do not list my site’ or ‘Only display my site name’.&lt;br /&gt;
Your site will then be removed from the site finder within 24 hours.&lt;br /&gt;
==Mobile authentication==&lt;br /&gt;
&lt;br /&gt;
===MFA===&lt;br /&gt;
The Moodle mobile app does not support MFA natively yet, however, you can redirect users to a browser to force the authentication process to behave exactly as Moodle LMS. You can do the previous via Site administration &amp;gt; Mobile authentication &amp;gt; Type of login and then select any of the options that mention browser.&lt;br /&gt;
&lt;br /&gt;
===SSO authentication method===&lt;br /&gt;
If your site uses a SSO authentication method (Shibboleth, LDAP SSO, OAuth...), then select via a browser window or via an embedded browser for &#039;Type of login&#039; (typeoflogin) in &#039;Mobile authentication&#039; in the Site administration. (This setting is provided for older pre-Moodle 3.2 sites via the [[Moodle Mobile additional features]] plugin.)&lt;br /&gt;
&lt;br /&gt;
The options &#039;browser window&#039; and &#039;embedded browser&#039; are very similar; the only difference is when redirecting the user to enter their credentials in the site, the site will be opened in the device&#039;s default browser (for browser window) or the site will be opened &amp;quot;embedded&amp;quot; in the mobile app (for embedded browser). The user experience is better in embedded browser, but not all the authentication plugins will work in embedded browser (for example, if JavaScript popups are required they must use the &#039;browser window&#039;). The admin should check whether both options work, and if so, choose &#039;embedded browser&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are using Google OAuth you will have to use the &#039;browser window&#039; method because Google recently blocked authentication via &#039;embedded browsers&#039;.&lt;br /&gt;
&lt;br /&gt;
If your organisation uses a custom branded app and &#039;Type of login&#039; is set to &#039;Via a browser window&#039; or &#039;Via embedded browser&#039;, then a URL scheme (forcedurlscheme) may be set. This will result in only the custom branded app working for the site: the official Moodle Mobile app will not work.&lt;br /&gt;
&lt;br /&gt;
===QR Login===&lt;br /&gt;
Please note that this feature requires Moodle 3.9 and is only available if you are enjoying a [https://moodle.com/app/ Pro/Premium plan].&lt;br /&gt;
&lt;br /&gt;
As a site administrator, you can enable login via QR. Please go to Site administration &amp;gt; Mobile app &amp;gt; Mobile authentication and select &amp;quot;QR code with automatic login&amp;quot; in the &amp;quot;QR code access&amp;quot; setting&lt;br /&gt;
&lt;br /&gt;
Once enabled, your students will be able to login in the app by scanning a QR code available on their Moodle site profile.&lt;br /&gt;
===Biometric Login===&lt;br /&gt;
This feature is only available to Pro, [https://apps.moodle.com Premium plan customers] and in Branded Moodle Apps developed by Moodle HQ.&lt;br /&gt;
&lt;br /&gt;
Biometric login allows your users to log in to your site via the Moodle App on Android and iOS devices using their fingerprint, face recognition or any other biometric option available on their mobile device. This makes the login process simpler, faster and more secure, and is specially useful if Autologout is enabled on your site.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enabling biometric login for your site&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can enable Biometric login as an authentication method through the Moodle Apps Portal, going to App customisation &amp;gt; Authentication &amp;gt; Biometric login, and then selecting “Enable biometric login”. Your users will then be able to choose whether they want to use Biometric login or not.&lt;br /&gt;
&lt;br /&gt;
For security reasons, users may be prompted to re-enter their credentials periodically. This interval is determined by the &#039;User created token duration&#039; (tokenduration) security setting, which is set to a default duration of three months. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setting up biometric login as a user&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To use biometric login in the Moodle App, users must have biometric authentication enabled in their own device&#039;s settings (e.g. FaceID or TouchID for iOs users, or Fingerprints for Android users).&lt;br /&gt;
&lt;br /&gt;
The first three times users log in to the app after you enable Biometric login, they will see a notification telling them that they can activate this new authentication method to access the app (provided that they have biometric authentication enabled in their device&#039;s settings).&lt;br /&gt;
&lt;br /&gt;
Users can activate and deactivate their biometric login any time in the Moodle App in User account &amp;gt; Preferences.&lt;br /&gt;
&lt;br /&gt;
===Auto logout===&lt;br /&gt;
From Moodle LMS 4.3 onwards, you can enhance security by enforcing automatic logout for your users when they leave or close the app, or it goes to the background.&lt;br /&gt;
&lt;br /&gt;
You can even set your own custom re-authentication time, to suit your organisation&#039;s security requirements. &lt;br /&gt;
&lt;br /&gt;
To activate auto logout, go to Site administration &amp;gt; Mobile app &amp;gt; Mobile authentication.&lt;br /&gt;
&lt;br /&gt;
This feature is particularly effective when paired with Biometric login, since that streamlines the login process for your users.&lt;br /&gt;
&lt;br /&gt;
== Customise your app theme ==&lt;br /&gt;
The app can also retrieve your custom styles from your Moodle site. Since the app is a HTML5 app, you can safely apply any CSS, CSS2 and CSS3 style.&lt;br /&gt;
&lt;br /&gt;
Go to &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Mobile app &amp;gt; Mobile appearance&#039;&#039; and enter in the mobilecssurl field a valid URL pointing to a CSS file containing your custom styles.&lt;br /&gt;
&lt;br /&gt;
The CSS should be placed inside your Moodle installation (in your custom theme or inside a local plugin).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For example:&#039;&#039;&#039; &#039;&#039;https://mymoodlesite.com/theme/mytheme/style/mymobileapp.css&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Once the user is logged in the app, remote CSS files for applying your custom styles are regularly retrieved.&lt;br /&gt;
&lt;br /&gt;
Notice that on the first time a user opens the app, he will see the default &amp;quot;orange&amp;quot; style. Your custom styles will be applied once the user has added a site in the app.&lt;br /&gt;
&lt;br /&gt;
For further information, see the dev docs [https://docs.moodle.org/dev/Moodle%20Mobile%20Themes Moodle Mobile Themes].&lt;br /&gt;
&lt;br /&gt;
If you want your own custom branding for your organization, Moodle offers the The [https://moodle.com/branded-app Branded Moodle Mobile app] service, please visit https://moodle.com/app/ for more information.&lt;br /&gt;
== Moodle Mobile additional features plugin for old Moodle sites ==&lt;br /&gt;
For old Moodle sites it is recommended to install the [[Moodle Mobile additional features]] plugin.&lt;br /&gt;
== Notifications ==&lt;br /&gt;
You might find them annoying but push notifications keeps you and your users informed and updated on everything about the app. Moodle only send useful and important notifications such as new features or service disruptions.&lt;br /&gt;
&lt;br /&gt;
Enabling push notifications is easy! An administrator can enable it by connecting their Moodle site/s to our free Notifications server available (only) for registered Moodle sites. &lt;br /&gt;
&lt;br /&gt;
An access key can be obtained via &#039;&#039;Site administration &amp;gt; General &amp;gt; Messaging &amp;gt; Notification settings&#039;&#039;. Be sure the &#039;Mobile&#039; is enabled and then click the link to settings, on the next page select &#039;&#039;Request access key&#039;&#039;. (For Moodle site versions 3.5 and 3.6 an access key can be obtained via &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Message outputs &amp;gt; Manage message outputs&#039;&#039;. Then by clicking the link to the Mobile settings, on the next page select &#039;&#039;Request access key&#039;&#039;.)&lt;br /&gt;
&lt;br /&gt;
The full guide on enabling push notifications can be found here: [[Mobile app notifications]]&lt;br /&gt;
== App banners ==&lt;br /&gt;
[[File:app banner.png|thumb|Moodle Mobile app banner]]&lt;br /&gt;
App banners let your users know a mobile app is available for the site. App banners are only displayed when accessing the site using a mobile browser.&lt;br /&gt;
&lt;br /&gt;
App banners are disabled by default. They can be enabled in &#039;Mobile appearance&#039; in the Site administration.&lt;br /&gt;
&lt;br /&gt;
If you are using a custom mobile app, you must provide the unique identifier for the iOS and Android app; if you use the Moodle Mobile app, the settings may be left as default.&lt;br /&gt;
&lt;br /&gt;
Please, notice the following:&lt;br /&gt;
* App banners for iOS devices (iPhone, iPad or iPod) are only shown when accessing the site using the Safari browser and the mobile app is not installed on the device yet. App banners are not displayed when using private browsing either.&lt;br /&gt;
* App banners for Android devices are only shown in very recent Chrome browser versions and when the app is not installed. Note also that Chrome uses an engagement heuristic that will display the banner only under certain conditions, like interactions with the site, the last time you interacted with it, etc. You can remove the engagement restriction check by disabling this special chrome flag: chrome://flags/#bypass-app-banner-engagement-checks. Please note also that certain custom Android versions (such as Samsung and Huawei ones) do not always support this feature&lt;br /&gt;
&lt;br /&gt;
==&#039;Get the mobile app&#039; link==&lt;br /&gt;
In Moodle 3.4 onwards, the link &#039;Get the mobile app&#039; in the footer of each page on the site encourages users to make use of the mobile app. &lt;br /&gt;
&lt;br /&gt;
By default, the link is https://download.moodle.org/mobile however the setting &#039;App download page&#039; can be changed e.g. for sites using a branded mobile app.&lt;br /&gt;
&lt;br /&gt;
If mobile services are not enabled for the site, then the &#039;Get the mobile app&#039; link is not displayed. &lt;br /&gt;
&lt;br /&gt;
To prevent the &#039;Get the mobile app&#039; link being displayed, simply remove the URL from the &#039;App download page&#039; setting and save changes.&lt;br /&gt;
== Configuring the app from your site ==&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Please notice that the type and number of features that you can customise depend on your Moodle Apps plan, you can register for free on https://apps.moodle.com to check the different plans.&lt;br /&gt;
&lt;br /&gt;
In Moodle 3.3 onwards, or with the [[Moodle Mobile additional features]] plugin, settings in the Site administration enable admins to configure the app.&lt;br /&gt;
* In Moodle 3.3 onwards go to &#039;&#039;Site administration &amp;gt; Mobile features&#039;&#039;&lt;br /&gt;
* In sites with the Moodle Mobile additional features plugin installed, go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Local plugins &amp;gt; Mobile additional features&#039;&#039;&lt;br /&gt;
===Force log out===&lt;br /&gt;
Replace the Change site option to &amp;quot;Log out&amp;quot; so that users must enter their credentials on their next access. This is useful for custom mobile apps, as there is no reason for users wanting to switch to a different site.&lt;br /&gt;
===Disabled features===&lt;br /&gt;
The mobile app may be simplified by removing unwanted features. Some items may already be not available in the app because they are not enabled on your site.&lt;br /&gt;
&lt;br /&gt;
Options to remove include:&lt;br /&gt;
&lt;br /&gt;
* Offline use&lt;br /&gt;
* Blocks (Note that from &#039;&#039;&#039;Moodle 4.3.1&#039;&#039;&#039; the Global search and Search forums blocks can be removed.)&lt;br /&gt;
* Comments&lt;br /&gt;
* Ratings&lt;br /&gt;
* Tags&lt;br /&gt;
* Create new account&lt;br /&gt;
* Responsive menu items &lt;br /&gt;
* Main menu&lt;br /&gt;
** Site home&lt;br /&gt;
** My courses&lt;br /&gt;
** Dashboard&lt;br /&gt;
** Calendar&lt;br /&gt;
** Notifications&lt;br /&gt;
** Messages&lt;br /&gt;
** Grades&lt;br /&gt;
** My learning plans&lt;br /&gt;
** Blog&lt;br /&gt;
** Files&lt;br /&gt;
** Web page&lt;br /&gt;
** Help&lt;br /&gt;
* Course&lt;br /&gt;
** Blocks&lt;br /&gt;
** Blog&lt;br /&gt;
** Search&lt;br /&gt;
** Competencies&lt;br /&gt;
** Participants&lt;br /&gt;
** Grades&lt;br /&gt;
** Course completion&lt;br /&gt;
** Notes&lt;br /&gt;
** Download course (new in 3.5)&lt;br /&gt;
** Download courses (new in 3.5)&lt;br /&gt;
* User&lt;br /&gt;
** Blog&lt;br /&gt;
** Badges&lt;br /&gt;
** Competencies&lt;br /&gt;
** Course completion&lt;br /&gt;
** Grades&lt;br /&gt;
** Send message&lt;br /&gt;
** Add contact&lt;br /&gt;
** Block contact&lt;br /&gt;
** Add a new note&lt;br /&gt;
** User picture&lt;br /&gt;
* Files&lt;br /&gt;
** Private files&lt;br /&gt;
** Ste files&lt;br /&gt;
** Upload&lt;br /&gt;
* Modules (Each module can be disabled separately)&lt;br /&gt;
* Blocks (Each block available in the app can be disabled separately)&lt;br /&gt;
&lt;br /&gt;
===Custom menu items===&lt;br /&gt;
Additional items can be added to the app main menu (the more menu), such as a link to a different grade book.&lt;br /&gt;
&lt;br /&gt;
In order to do so go to &amp;quot;Site administration &amp;gt; Mobile features &amp;gt; Custom menu items&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Each custom menu item should have the format: item text, link URL, link-opening method and language code (optional, for displaying the item to users of the specified language only), icon (optional, the name of the icon from https://ionicons.com) separated by pipe characters.&lt;br /&gt;
&lt;br /&gt;
Possible link-opening methods are:&lt;br /&gt;
* app - for linking to an activity supported by the app i.e. almost all activity types, as listed in [[Moodle Mobile features]].&lt;br /&gt;
* inappbrowser - for linking to external URLs or site functionalities not supported by the app. The link will open in a browser inside the app overlaying the complete screen.&lt;br /&gt;
* browser - as for inappbrowser except that the link will instead open in the device default browser outside the app.&lt;br /&gt;
* embedded - as for inappbrowser except that the link will instead open in an iframe in a new page in the app. (For this option you may need to enable the admin setting &amp;quot;Allow frame embedding&amp;quot; (allowframembedding)&lt;br /&gt;
Tip: If you add a custom menu item and save changes, then it doesn&#039;t appear in the app main menu, double check that the item is correctly formatted.&lt;br /&gt;
&lt;br /&gt;
Please, note that if custom menu items have the same URL, same link-opening method, and same language only the first custom menu item will be shown.&lt;br /&gt;
&lt;br /&gt;
Please, note that if the app is using a language not indicated in the previous list, the first language in the list will be used. (So if you have a custom menu item in English (en) and French (fr), and the app is using Spanish the user will still see that custom menu item in English)&lt;br /&gt;
&lt;br /&gt;
If you want options tied to a language, you can append _only to the language code, for example:&lt;br /&gt;
en_only&lt;br /&gt;
es_only, will display the custom menu item only when the app language is English or Spanish.&lt;br /&gt;
&lt;br /&gt;
Example of a menu item (it will display a home icon followed by Academy information linking to the URL indicated):&lt;br /&gt;
 Academy information|https://yoursite.com/mod/page/view.php?id=X |app|en|home&lt;br /&gt;
&lt;br /&gt;
===Responsive menu items===&lt;br /&gt;
From 3.7 onwards menu items on bottom tabs are moved to the side of the screen on big screens. Also the number of items displayed on the menu may vary:&lt;br /&gt;
* On small screens (usually phones) from 2 to 5 items will be displayed depending on the size of the screen.&lt;br /&gt;
* On big screens (usually tablets an desktop version) more than 2 items will be displayed without limit.&lt;br /&gt;
If &#039;&#039;&#039;Responsive menu items&#039;&#039;&#039; is selected in Disabled features items will be displayed in side of bottom anyway but 5 items will be displayed in all cases without depending on the size of the screen.&lt;br /&gt;
===Custom language strings ===&lt;br /&gt;
Words and phrases displayed in the app can be customised via the &amp;quot;Site administration &amp;gt; Mobile app features &amp;gt; Custom language strings&amp;quot; (customlangstrings) setting.&lt;br /&gt;
&lt;br /&gt;
Enter each custom language string on a new line with format: string identifier, custom language string and language code, separated by pipe characters. For example:&lt;br /&gt;
 core.user.student|Learner|en&lt;br /&gt;
 core.user.student|Aprendiz|es&lt;br /&gt;
The complete list of string identifiers is listed in https://latest.apps.moodledemo.net/assets/lang/en.json&lt;br /&gt;
&lt;br /&gt;
The string identifier is before the colon. &lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;core.user.student&amp;quot;: &amp;quot;Student&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
means that the string &amp;quot;Student&amp;quot; has string identifier &amp;quot;core.user.student&amp;quot;.&lt;br /&gt;
==Analytics and stats==&lt;br /&gt;
&lt;br /&gt;
===Usage statistics from your Moodle site===&lt;br /&gt;
&lt;br /&gt;
To retrieve information about the Moodle app usage, site administrators and teachers can check the site, course or activity logs.&lt;br /&gt;
&lt;br /&gt;
* Site logs are available via &amp;quot;Site administration &amp;gt; Reports &amp;gt; Logs&amp;quot;&lt;br /&gt;
* Course logs are available via the course options (on top of the course page) &amp;quot;Reports &amp;gt; Logs&amp;quot;&lt;br /&gt;
* Activity logs are available via the activity page, on top you will find &amp;quot;Reports &amp;gt; Logs&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Among the log filters, there is a field called &amp;quot;All sources&amp;quot; with an option &amp;quot;Web Service/ws&amp;quot; that can be used to filter the entry logs generated by the mobile application.&lt;br /&gt;
&lt;br /&gt;
You can compare the number of log entries generated by the &amp;quot;Web&amp;quot; versus &amp;quot;Web Service&amp;quot; (mobile app) to have an overall idea about how your users use the platform.&lt;br /&gt;
&lt;br /&gt;
Please, notice that if you have custom &amp;quot;Web Services&amp;quot; or an installed plugin that uses Web Services, you will also see entries for them under the same filter.&lt;br /&gt;
&lt;br /&gt;
If you have access to the site database, the table &amp;quot;external_tokens&amp;quot; has a &amp;quot;lastaccess&amp;quot; timestamp field that could be used to obtain active users of the app every day.&lt;br /&gt;
&lt;br /&gt;
===Integration with Matomo analytics===&lt;br /&gt;
Note: This feature is available for [https://apps.moodle.com Premium app plans and Branded Moodle Apps]. To use this integration, you will need to have your own instance of Matomo. &lt;br /&gt;
&lt;br /&gt;
Matomo is an open source web analytics tool that helps you monitor traffic to your Moodle site, including app activity. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Connecting to your Matomo instance in the Apps portal&#039;&#039;&#039;&lt;br /&gt;
[[File:Captura de pantalla 2023-11-14 a las 12.03.36.png|thumb|Moodle App Matomo Integration set up]]&lt;br /&gt;
To use Matomo to track app activity on your Moodle site, you will need to have your own instance of Matomo analytics, and to add your Moodle site as one of your measurable websites (see instructions on [https://matomo.org/faq/how-to/create-and-manage-websites/ Matomo’s website]). Then, follow these steps:&lt;br /&gt;
# Log in to the [https://apps.moodle.com Apps portal]. &lt;br /&gt;
# Go to &#039;&#039;&#039;App customisation&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;Analytics&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;Matomo analytics&#039;&#039;&#039;.&lt;br /&gt;
# Check &#039;&#039;&#039;Track app activity&#039;&#039;&#039;.&lt;br /&gt;
# Add your &#039;&#039;&#039;Matomo URL&#039;&#039;&#039; - that&#039;s the URL of your Matomo instance, for example https://yoursite.matomo.cloud.&lt;br /&gt;
# Add the &#039;&#039;&#039;Website ID&#039;&#039;&#039; associated with your Moodle site in Matomo. To obtain this ID:&lt;br /&gt;
## Log in to your Matomo account.&lt;br /&gt;
## Go to &#039;&#039;&#039;Administration&#039;&#039;&#039; using the gear icon on the right side of the top navigation bar.&lt;br /&gt;
## On the left-hand panel, select &#039;&#039;&#039;Websites&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;Manage&#039;&#039;&#039;.&lt;br /&gt;
## In your list of measurables, find the Moodle site in which you want to track app activity. The &#039;&#039;&#039;ID&#039;&#039;&#039; of the measurable is the &#039;&#039;&#039;Website ID&#039;&#039;&#039; you need to enter in the apps portal.&lt;br /&gt;
# Click &#039;&#039;&#039;Save changes&#039;&#039;&#039; to establish the connection and start tracking app activity.&lt;br /&gt;
# If you&#039;d like to stop tracking at any time, uncheck &#039;&#039;&#039;Track app activity&#039;&#039;&#039; and then save changes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To filter Matomo data to isolate mobile app usage from Moodle site interactions, follow these steps:&lt;br /&gt;
[[File:Captura de pantalla 2023-11-14 a las 12.05.05.png|thumb|Moodle App Matomo referrer set-up]]&lt;br /&gt;
# Log in to your Matomo account.&lt;br /&gt;
# Click &#039;&#039;&#039;All visits&#039;&#039;&#039; at the top of the page&lt;br /&gt;
# Create a custom segment by applying this configuration: “Referrer URL” “is” “https://moodlemobile”&lt;br /&gt;
# To only see Moodle site interactions, do the following: “Referrer URL” “is not” “https://moodlemobile”&lt;br /&gt;
&lt;br /&gt;
Please notice that the integration with Matomo does not work offline.&lt;br /&gt;
&lt;br /&gt;
===Google Analytics for Firebase===&lt;br /&gt;
Only available when purchasing a [https://moodle.com/branded-app/ Branded Moodle App]. &lt;br /&gt;
&lt;br /&gt;
Google Analytics for Firebase is a free tool that provides valuable insights and data about how users interact with mobile apps.&lt;br /&gt;
&lt;br /&gt;
Please notice that the integration with Google Analytics for Firebase does not work offline.&lt;br /&gt;
&lt;br /&gt;
===Google Play and Apple App Store statistics===&lt;br /&gt;
&lt;br /&gt;
If you have a custom mobile application, you can access statistics about app downloads and user engagement such as weekly active users and devices.&lt;br /&gt;
&lt;br /&gt;
Google play:&lt;br /&gt;
# Go to Google Play console: https://play.google.com/console&lt;br /&gt;
# Select your app from the list.&lt;br /&gt;
# Navigate to specific tabs, such as &amp;quot;Statistics&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apple App Store:&lt;br /&gt;
# Log in to App Store Connect: https://appstoreconnect.apple.com/&lt;br /&gt;
# Go to &amp;quot;App Analytics&amp;quot; from the dashboard.&lt;br /&gt;
&lt;br /&gt;
==Web services token duration==&lt;br /&gt;
From Moodle 3.4 onwards, an admin can set how long a web services token created by a user (for example via the mobile app) is valid. (In previous versions of Moodle a token was valid for 3 months.)&lt;br /&gt;
&lt;br /&gt;
The setting that dictates the previous &#039;User created token duration&#039; (tokenduration) can be found under the Security section.&lt;br /&gt;
==App&#039;s cache==&lt;br /&gt;
The app caches WebService requests to decrease data usage and increase the app&#039;s speed. When the app needs to get some data from Moodle, it will use a cached request as long as it isn&#039;t expired.&lt;br /&gt;
&lt;br /&gt;
This cache was improved in Moodle App 3.7.0, now there are several cache times depending on the WS being called. This means that some requests will expire more often than others. Also, if the user isn&#039;t using a WiFi connection, the expiration time will also be longer to decrease the data usage. These cache times cannot be configured using a Moodle setting.&lt;br /&gt;
==See also==&lt;br /&gt;
*[https://moodle.academy/enrol/index.php?id=100 Moodle App Configuration] - An intermediate-level Moodle Academy course for administrators who want to configure their Moodle site settings to optimise the Moodle App experience for users.&lt;br /&gt;
* [[Moodle Mobile FAQ]] for other administration-related mobile app questions.&lt;br /&gt;
* [[Moodle app security]]&lt;br /&gt;
* [https://docs.moodle.org/dev/Moodle%20Mobile%20debugging%20WS%20requests dev:Moodle Mobile debugging WS requests] - a guide to helping you find and report problems with the Moodle Mobile app on your site&lt;br /&gt;
* [https://docs.moodle.org/dev/%20Moodle%20Mobile%20Roadmap dev: Moodle Mobile Roadmap]&lt;br /&gt;
* [https://docs.moodle.org/dev/Moodle%20Mobile%20release%20notes dev:Moodle Mobile release notes]&lt;br /&gt;
* [https://docs.moodle.org/dev/Moodle%20Mobile Moodle Mobile developer docs]&lt;br /&gt;
* [[Moodle Mobile availability plugin]]&lt;br /&gt;
* [[Mobile web services]]&lt;br /&gt;
[https://docs.moodle.org/fr/ Guide mobile pour administrateurs]&lt;br /&gt;
[https://docs.moodle.org/es/Moodle app guía para administradores]&lt;br /&gt;
[https://docs.moodle.org/de/Moodle App - Anleitung für Administrator/innen]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_FAQ&amp;diff=154876</id>
		<title>Moodle app FAQ</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_FAQ&amp;diff=154876"/>
		<updated>2026-01-14T15:52:13Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Why the site is asking for my username and password when an activity is opened in the browser? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
==Students==&lt;br /&gt;
===How can I log in?===&lt;br /&gt;
To log in to your Moodle site with the Moodle App, you need the URL (web address) of the Moodle site that you’re trying to access. If your organisation has Search enabled, you can try searching by the name of your organisation or eLearning site.&lt;br /&gt;
&lt;br /&gt;
If your organisation allows you to log in via QR code, you’ll find the QR code at the bottom of your user profile on your Moodle site. You just need to press “Scan QR code” on the app, scan the QR code on your profile and you’ll be logged in automatically.&lt;br /&gt;
&lt;br /&gt;
If your organisation allows you to log in using face recognition or fingerprint, you can activate this in the App, going to User account &amp;gt; Preferences. You’ll need to have biometric authentication enabled in your own device’s settings. &lt;br /&gt;
===Who can I contact for help with the app?===&lt;br /&gt;
If you’re a student and need help with issues related to logging in, registering to a Moodle site or trouble connecting to the app, you should contact your school or learning organisation. For example, one of your teachers, or the person who takes care of Moodle.&lt;br /&gt;
Moodle HQ make the Moodle software and the Moodle app, but they don’t manage nor have access to your Moodle site or your user data.&lt;br /&gt;
===How can I get the Moodle app?===&lt;br /&gt;
You can download the Moodle App for free from [https://play.google.com/store/apps/details?id=com.moodle.moodlemobile Google Play] and the Apple [https://itunes.apple.com/app/moodle-mobile/id633359593?mt=8 App Store]. You will find it by searching “Moodle”, and the author/owner is “Moodle Pty Ltd”.&lt;br /&gt;
If you are unable to download the app from Google play, please visit [https://download.moodle.org/mobile/ Moodle app downloads]&lt;br /&gt;
===I can&#039;t get the app to work. ===&lt;br /&gt;
To ensure that the Moodle app functions properly, please double-check that you have correctly entered the URL address of the Moodle site you are using (please visit [https://docs.moodle.org/en/Moodle_app_FAQ#I_can%E2%80%99t_find_my_Moodle_site_in_the_app. I can’t find my Moodle site in the app]). If you are experiencing difficulties connecting to your site, please contact the person or team who takes care of Moodle in your school or learning organisation. Please note the app only works with Moodle sites that have been set up to allow it, and that are running on at least Moodle 3.5.&lt;br /&gt;
&lt;br /&gt;
===I can’t find my Moodle site in the app. ===&lt;br /&gt;
To find your Moodle site on the app login screen, try searching for the name of your school or learning organisation.&lt;br /&gt;
&lt;br /&gt;
If your school or organisation doesn’t appear in the search, you can try searching by your Moodle site URL address instead. If you don’t know the address of your Moodle site, here’s how you can find it:&lt;br /&gt;
# Open a web browser (like Chrome or Safari) and go to your school’s Moodle site login page.&lt;br /&gt;
# At the top of the page in the address bar, you&#039;ll see the URL address of your Moodle site, e.g. “campus.example.edu”. [[File:FAQ I cant find my site 1.png|alt=URL|thumb|none|&#039;&#039;campus.example.edu&#039;&#039;]]&lt;br /&gt;
# Copy the URL (don’t copy the /login nor what comes after), paste it into Your site in the app, then select Connect to your site. [[File:FAQ I cant find my site 2.png|alt=Adding an URL to the app|thumb|none|Adding an URL to the app]]&lt;br /&gt;
# Now you can log in to your site with your username and password.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you tried searching by URL address and still can’t find your Moodle site, please get in touch with the person who takes care of Moodle in your school or learning organisation.&lt;br /&gt;
===I can’t log in with the app===&lt;br /&gt;
To log in to your Moodle site using the app, you first need to connect to your school’s Moodle site (view [[I can’t find my Moodle site in the app]] if you can’t find your site).&lt;br /&gt;
&lt;br /&gt;
Once you’ve connected to your Moodle site, you should be able to log in with your usual username and password.&lt;br /&gt;
&lt;br /&gt;
If you forgot your username or password, select the option &#039;&#039;&#039;Forgotten your username or password?&#039;&#039;&#039;. If you still have trouble logging in or can’t see any options for retrieving your username or password, please get in touch with the person who takes care of Moodle in your school or learning organisation.&lt;br /&gt;
===I see an error message when I try to use the app===&lt;br /&gt;
If you see an error message that prevents you from using the app, please get in touch with the person who takes care of Moodle in your school or learning organisation. &lt;br /&gt;
&lt;br /&gt;
Some of the most common errors that your school or learning organisation will be able to fix are:&lt;br /&gt;
* Your token is expired or not valid.&lt;br /&gt;
* An error mentioning the parameter “includestealthmodules”.&lt;br /&gt;
* The web service function is not available.&lt;br /&gt;
* A message about site maintenance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you’re experiencing any of these errors, contact your school or learning organisation for help.&lt;br /&gt;
===What permissions does the app require?===&lt;br /&gt;
The app requires the following permissions:&lt;br /&gt;
* Record audio - for uploading to your Moodle site&lt;br /&gt;
* Read and modify the contents of your SD card - for content to be downloaded to your SD Card for offline access.&lt;br /&gt;
* Network access - to be able to connect with your Moodle site and check if you are connected, and if not to switch to offline mode.&lt;br /&gt;
* Run at startup - to receive local notifications even when the app is running in the background.&lt;br /&gt;
* Prevent phone from sleeping - to receive push notifications anytime.&lt;br /&gt;
===What are the minimum device requirements to use the Moodle app?===&lt;br /&gt;
Android devices: Require Android 7.0 or later. (Users with Android 5 and 6 can still use version 4.3, but they will not receive any new updates.)&lt;br /&gt;
&lt;br /&gt;
iOS devices (iPhones/iPads): Require iOS 13 or later. (Please note the app was only tested on versions iOS 14 and onward.)&lt;br /&gt;
&lt;br /&gt;
===I can&#039;t see my course on the app. What do I do?===&lt;br /&gt;
Check with your course tutor that you are correctly enrolled.&lt;br /&gt;
=== Why can&#039;t I upload my assignment on the app?===&lt;br /&gt;
If you’re experiencing any issue uploading assignment, please contact your school or learning organisation for help.&lt;br /&gt;
===Why can&#039;t I sometimes access the app or submit anything to it?===&lt;br /&gt;
This could be because of interruptions in your internet connection. Wait a while and try again. If you continue to have problems, contact your school or learning organisation for help.&lt;br /&gt;
===Is there a space limit on my files?===&lt;br /&gt;
Assignments will have a size limit which you can see, those are set by your teachers. For other space limit questions, check with your your school or learning organisation .&lt;br /&gt;
===When are activities completed offline synchronized?===&lt;br /&gt;
See [[Moodle app synchronization]].&lt;br /&gt;
===Why the site is asking for my username and password when an activity is opened in the browser or embedded via an iframe on the app?===&lt;br /&gt;
For security reasons, between auto-logins you must wait 6 minutes (this should not be a problem because most of the browsers will keep your Moodle session open). Auto-login between the Mobile app and the Moodle site (for example, for displaying embedded content from the Moodle site) is not permitted for site administrations for security reasons. If you are experiencing issues, please try first with a non-privileged user account.&lt;br /&gt;
&lt;br /&gt;
In recent Moodle versions, the previous value can be configured in Site Administration &amp;gt; Mobile app authentication &amp;gt;  Minimum time between auto-login requests&lt;br /&gt;
&lt;br /&gt;
=== The Moodle app might seem slow (especially on Android devices) ===&lt;br /&gt;
If the app feels slow, it might be due to things outside the app itself. This can include:&lt;br /&gt;
* Slow internet connection&lt;br /&gt;
* Network problems&lt;br /&gt;
* The server responding slowly&lt;br /&gt;
* Content or settings not made for mobile&lt;br /&gt;
* Using the app on an old or slow device&lt;br /&gt;
&lt;br /&gt;
We test the app carefully on many sites before each release, and we’re confident it usually works as well as or better than the website.&lt;br /&gt;
&lt;br /&gt;
To make sure your site works well on mobile, please check [[Creating mobile-friendly courses]]&lt;br /&gt;
&lt;br /&gt;
Finally, to troubleshoot this problem, we recommend trying the application with our demo site: https://school.moodledemo.net. Simply use the username &amp;quot;student&amp;quot; and the relevant password to access the site. If you find that the navigation and overall experience with the app are improved, then the issue may be at the server level. In this case, we suggest contacting your school or learning organisation for further assistance.&lt;br /&gt;
&lt;br /&gt;
=== The Moodle app restarts/ closes / reopenes itself ===&lt;br /&gt;
This is likely because there are too many apps opened on your mobile device. Mobile devices have a finite amount of memory, and the device&#039;s memory manager is responsible for determining which applications to keep open and which to close.&lt;br /&gt;
To optimise your device&#039;s performance, we recommend closing all applications that are not currently in use. This will free up valuable memory and ensure that your device runs smoothly.&lt;br /&gt;
===I use LineageOS and I&#039;m having problems using the app===&lt;br /&gt;
LineageOS uses a different WebView implementation not compatible vith the app. You need to install &amp;quot;Android System WebView&amp;quot; from Google Play (or via a trusted apk) and enabling it via Settings &amp;gt; Developer options &amp;gt; WebView implementation.&lt;br /&gt;
===H5P packages and external content embedded via iframes are not working on iOS ===&lt;br /&gt;
This is caused by a new feature of iOS 14 called ITP that blocks cookies for external sites embedded in the app (the H5P content is played embedded in an iframe pointing to the Moodle website) unless the user enables a setting in the app to allow those cookies.&lt;br /&gt;
&lt;br /&gt;
The quick workaround is to enable the setting &amp;quot;Allow Cross-Website Tracking&amp;quot; available via the Settings app (look for the Moodle app, at the bottom) on your iPhone/iPad with iOS 14.&lt;br /&gt;
===I cannot reproduce audio that was recorded on browser on iOS devices (iPhones and iPads)===&lt;br /&gt;
This behaviour is related to this Moodle LMS bug: https://tracker.moodle.org/browse/MDL-80114&lt;br /&gt;
&lt;br /&gt;
=== I don&#039;t receive calendar notifications (reminders) when using Android 12 or above === &lt;br /&gt;
&lt;br /&gt;
In order to receive calendar notifications you need to allow alarms and reminders for the Moodle app. To do this:&lt;br /&gt;
* Open Android Settings and go to the Moodle app settings. Another way to reach these settings is by long-clicking the Moodle app icon and pressing &amp;quot;App info&amp;quot;.&lt;br /&gt;
* Make sure that Notifications are enabled.&lt;br /&gt;
* If you see a section called &amp;quot;Alarms &amp;amp; reminders&amp;quot;, make sure it is Allowed (this setting is disabled by default in Android 14+).&lt;br /&gt;
&lt;br /&gt;
==Teachers==&lt;br /&gt;
===How can I enable videos in my course to be downloaded?===&lt;br /&gt;
See the section &#039;Media download for offline usage&#039; in [[Creating Moodle-app-friendly courses]].&lt;br /&gt;
===Which course format is it best to use?===&lt;br /&gt;
Topics or weekly course format is best suited to mobile devices.&lt;br /&gt;
===How do I make YouTube links open automatically in the app?===&lt;br /&gt;
Add YouTube links as a [[URL resource]].&lt;br /&gt;
===Why can&#039;t my students see their courses?===&lt;br /&gt;
If you or an administrator have correctly enrolled them in a course, they can see it in their mobile app. If they are correctly enrolled but can still not see their course, ask them to check with your Moodle site administrator.&lt;br /&gt;
=== I can&#039;t mark assignments in the app===&lt;br /&gt;
If you are experiencing problems when grading, please review that you are using the correct decimal separators (if the app interface is in English, you must use a period).&lt;br /&gt;
===What communications tools can I use in the app to engage with my learners?===&lt;br /&gt;
See [[Mobile app notifications]]. Chat, forums and messaging are all supported by the app.&lt;br /&gt;
===My Vimeo videos are not playing in the app===&lt;br /&gt;
In older versions of Moodle (pre-Moodle 3.7), it may be necessary to activate the &amp;quot;Allow frame embedding&amp;quot; admin setting. However, for those using Moodle version 3.7 or later, it is important to check whether a Proxy/Firewall/Web Server security module is setting the X-Frame-Options header in your HTTP request responses. If this is the case, it is recommended to deactivate this feature as it may cause conflicts, as Moodle already sets this header by default. &lt;br /&gt;
&lt;br /&gt;
This setting is typically found in any of these configuration files .htaccess, httpd.conf or VirtualHost. To disable it, you can just use: Header always unset X-Frame-Options &lt;br /&gt;
&lt;br /&gt;
You may also use Bootstrap responsive classes: https://getbootstrap.com/docs/4.0/utilities/embed/, for example, &amp;lt;div class=&amp;quot;embed-responsive&amp;quot;&amp;gt;&lt;br /&gt;
For older versions, see this forum discussion with a workaround: https://moodle.org/mod/forum/discuss.php?d=327342&lt;br /&gt;
&lt;br /&gt;
If the issue is with vimeo videos on Moodle sites 3.10 or 3.11, please update the Moodle site to the latest version possible (at least 3.10.10 or 3.11.6). (See https://tracker.moodle.org/browse/MDL-74042)&lt;br /&gt;
===ReCaptcha doesn&#039;t work on my site===&lt;br /&gt;
In older versions of Moodle (pre-Moodle 3.7), it may be necessary to activate the &amp;quot;Allow frame embedding&amp;quot; admin setting. However, for those using Moodle version 3.7 or later, it is important to check whether a Proxy/Firewall/Web Server security module is setting the X-Frame-Options header in your HTTP request responses. If this is the case, it is recommended to deactivate this feature as it may cause conflicts, as Moodle already sets this header by default. &lt;br /&gt;
===H5P packages don&#039;t work on my site===&lt;br /&gt;
In older versions of Moodle (pre-Moodle 3.7), it may be necessary to activate the &amp;quot;Allow frame embedding&amp;quot; admin setting. However, for those using Moodle version 3.7 or later, it is important to check whether a Proxy/Firewall/Web Server security module is setting the X-Frame-Options header in your HTTP request responses. If this is the case, it is recommended to deactivate this feature as it may cause conflicts, as Moodle already sets this header by default. &lt;br /&gt;
&lt;br /&gt;
This setting is typically found in any of these configuration files .htaccess, httpd.conf or VirtualHost. To disable it, you can just use: Header always unset X-Frame-Options &lt;br /&gt;
&lt;br /&gt;
This can also happen when you are using the non-official H5P plugin (mod_hvp), in that case you will see the following message: This site is not configured properly for displaying mobile H5P content. Please contact a site administrator so they can apply the above suggested configuration changes.&lt;br /&gt;
&lt;br /&gt;
If you are using the non-official H5P plugin (mod_hvp) you can also try changing the plugin settings &amp;quot;Mobile rendering handler&amp;quot; and try the different options until you find the one that works for you. You might need to restart the app everytime you change the settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cookies issues&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If your site uses HTTPS please ensure that the &amp;quot;Secure cookies only&amp;quot; (cookiesecure) setting under Site administration &amp;gt; HTTP security is enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency errors&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the following error appears &amp;quot;Missing dependency H5P.Editor. something X required by H5P.Editor. something Y&amp;quot;. H5P packages need to include all the libraries (dependencies) they use so the package is self-contained. But sometimes packages might be missing at least one dependency.&lt;br /&gt;
&lt;br /&gt;
In order to fix this, you could do the following:&lt;br /&gt;
&lt;br /&gt;
Open Moodle’s Content Bank (from the link in the problematic H5P settings page) and upload your H5P package there, once uploaded, you will see the H5P package and an “Edit” button, click on that button so the editor opens, scroll down and click “Save”.&lt;br /&gt;
Now, you can replace the problematic H5P with this new one, for this, you can just include it from the Content bank by opening the activity settings page and the file picker.&lt;br /&gt;
&lt;br /&gt;
=== I use a Moodle plugin but the app says it is not supported ===&lt;br /&gt;
You should contact the plugin developer and point him to this documentation: https://docs.moodle.org/dev/Moodle_Mobile_Remote_addons where it is explained how to add support to plugins in the Mobile app.&lt;br /&gt;
&lt;br /&gt;
There is a list of Moodle plugins supported by the app here: https://moodle.org/plugins/browse.php?list=award&amp;amp;id=6&lt;br /&gt;
&lt;br /&gt;
To learn more about how the Moodle app works and how to make your plugins compatible, check out the intermediate-level Moodle Academy course [https://moodle.academy/enrol/index.php?id=71 Make Your Plugin Moodle App Compatible].&lt;br /&gt;
&lt;br /&gt;
=== I have problems playing SCORM packages ===&lt;br /&gt;
This might be caused because:&lt;br /&gt;
* The SCORM was added using an advanced option (remote imsmanifest.xml packages or file system repository unzipped SCORMS)&lt;br /&gt;
* The SCORM ZIP file was created using a tool that does not create standardised ZIP files (for example, zip files containing the inverted path separator &amp;quot;\&amp;quot; will not work on Android)&lt;br /&gt;
Please refer to [[Moodle app SCORM player]] for additional information.&lt;br /&gt;
=== My quizzes or lessons are not working offline ===&lt;br /&gt;
You need to edit the quiz or lesson activity settings and enable the &amp;quot;Allow lesson/quiz to be attempted offline using the mobile app&amp;quot; configuration option.&lt;br /&gt;
=== Maths notation is not displaying correctly in the app ===&lt;br /&gt;
If you are having issues with MathJax, please enable the [[TeX notation filter]] also.&lt;br /&gt;
&lt;br /&gt;
If you have both filters enabled, please leave MathJax above TeX so it is always processed before TeX.&lt;br /&gt;
&lt;br /&gt;
If the issue persists, we suggest disabling the &#039;Remove HTML tags from all activity names&#039; (&#039;&#039;formatstringstriptags&#039;&#039;) option in &#039;&#039;Site Administration&#039;&#039; &amp;gt; &#039;&#039;Appearance&#039;&#039; &amp;gt; &#039;&#039;HTML settings&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== How can I disable text selection / copy in the app? ===&lt;br /&gt;
You can create a remote theme and add some custom CSS rules to disable it, see https://docs.moodle.org/dev/Moodle_Mobile_Themes&lt;br /&gt;
=== My images, videos or audios stop working after the first time ===&lt;br /&gt;
Please make sure the URL you&#039;re using on the media file doesn&#039;t have any redirect (e.g. http to https), always try to use the final URL. There&#039;s a bug in the library we use to download those files, it doesn&#039;t work when downloading files with redirects. We have plans to remove that library from the app, but since then please always try to use URLs without redirects.&lt;br /&gt;
&lt;br /&gt;
=== Embedded YouTube videos are not working on iOS Moodle App (Error 153) ===&lt;br /&gt;
Unfortunately recent changes (October 2025) implemented by YouTube have disrupted the functionality of embedded YouTube videos in the Moodle app and other apps. This issue is beyond our control, and we have already reported this problem to all the third-parties that could provide a solution to help address this issue.&lt;br /&gt;
&lt;br /&gt;
We are developing a workaround that will be included in the next version of the app, 5.1.0. Please note that the 5.1.0 app is still under development, and it will take some time to complete the quality assurance process and make it available in the app stores. If you have an iOS device (iPhone or iPad) and would like to help us test the workaround and verify it solves the problem, we strongly encourage you to [https://moodle.org/mod/forum/discuss.php?d=470888#p1890316 join our Beta programme].&lt;br /&gt;
&lt;br /&gt;
Please visit https://moodle.org/mod/forum/discuss.php?d=470700#p1889793 for more information&lt;br /&gt;
&lt;br /&gt;
==Administrators==&lt;br /&gt;
=== What plans are available for the Moodle app? ===&lt;br /&gt;
There are two main plans available for the Moodle app: Free, and Premium, each offering different features. In addition to the plans, there is also a Branded Moodle App (BMA) option. The BMA is a custom-built app that is branded to your organization. Learn more in [[Moodle app plans]].&lt;br /&gt;
=== How can I have my site listed in the Moodle app site finder? ===&lt;br /&gt;
Please refer to our [[Moodle app guide for admins]] for instructions.&lt;br /&gt;
=== How can I debug errors in the app? ===&lt;br /&gt;
Go to the More tab and then to Settings &amp;gt; General. Enable &amp;quot;Display debug messages&amp;quot;. This will show an explanatory message when an error occurs, alternatively, you can do a full debugging via: https://docs.moodle.org/dev/Moodle_Mobile_debugging_WS_requests&lt;br /&gt;
&lt;br /&gt;
=== How can I disable features in the app? ===&lt;br /&gt;
Please go to &#039;&#039;Site administration &amp;gt; Mobile features &amp;gt; Disabled features&#039;&#039; and select all the features you want to disable.&lt;br /&gt;
&lt;br /&gt;
To select multiple features you will have to use Ctrl (Cmd in Mac) + Click&lt;br /&gt;
&lt;br /&gt;
=== How can I add custom menu items in the app? ===&lt;br /&gt;
You can add custom additional menu items in the &amp;quot;more&amp;quot; menu of the app, the one represented by three consecutive dots.&lt;br /&gt;
&lt;br /&gt;
Please go to &#039;&#039;Site administration &amp;gt; Mobile features &amp;gt; Custom menu items&#039;&#039; and follow the instructions in [[Moodle_app_guide_for_admins#Custom_menu_items|Moodle app guide for admins]] for the correct format to use.&lt;br /&gt;
&lt;br /&gt;
As a quick example:&lt;br /&gt;
  Academy information|https://yoursite.com/mod/page/view.php?id=X |app|en|home&lt;br /&gt;
&lt;br /&gt;
=== How can I customise the language strings in the app? ===&lt;br /&gt;
&lt;br /&gt;
Please go to &#039;&#039;Site administration &amp;gt; Mobile features &amp;gt; Custom language strings&#039;&#039; and follow the instructions in [[Moodle_app_guide_for_admins#Custom_language_strings|Moodle app guide for admins]] for the format to use.&lt;br /&gt;
&lt;br /&gt;
As a quick example:&lt;br /&gt;
 core.user.student|Learner|en&lt;br /&gt;
 core.user.student|Aprendiz|es&lt;br /&gt;
&lt;br /&gt;
=== I can connect with my iPhone (or iPad) but not with my Android phone ===&lt;br /&gt;
This usually happens when the site is using https and the certificate is not correctly configured or it is using an old protocol, please use these pages to check this certificate: https://www.sslshopper.com/ssl-checker.html, https://www.geocerts.com/ssl_checker, and https://www.ssllabs.com/ssltest/analyze.html&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The certificate of this site cannot be trusted by your device: TLS connection could not be established: javax.net.ssl.SSLHandshakeException&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This error could be caused because in any of the certification paths there is a certificate using SHA-1. Starting Android 10 this is not allowed, more information here: https://developer.android.com/privacy-and-security/security-ssl&lt;br /&gt;
&lt;br /&gt;
You could easily check the previous using https://www.ssllabs.com/ssltest/analyze.html and going to the Certification Paths -&amp;gt; Android section, if there is any mention to SHA-1 this could be the cause. You will need to upgrade your certificates to avoid using SHA-1.&lt;br /&gt;
&lt;br /&gt;
=== My certificate is fine but I still can&#039;t connect ===&lt;br /&gt;
This is usually a server configuration problem caused by any of the following server configuration issues:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Access to XMLHttpRequest at &#039;https://yoursite/webservice/rest/server.php?moodlewsrestformat=json&amp;lt;nowiki/&amp;gt;...&#039; from origin &#039;&amp;lt;nowiki&amp;gt;http://localhost&#039;&amp;lt;/nowiki&amp;gt; has been blocked by CORS policy: No &#039;Access-Control-Allow-Origin&#039; header is present on the requested resource.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is because a Proxy/Firewall/Web Server security module is removing automatically the Access-Control-Allow-Origin: * header that Moodle sets to allow Web Service requests. &lt;br /&gt;
&lt;br /&gt;
It is totally secure to remove that Proxy/Firewall/Web Server rule/configuration because that header is only set by Moodle when needed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;access-control-allow-origin cannot contain more than one origin&amp;quot;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
iOS and Android apps do not allow the following header to contain more than one item: &amp;quot;Access-Control-Allow-Origin&amp;quot;. For example, a header like this: Access-Control-Allow-Origin: *, https://mydomain.com will cause problems.&lt;br /&gt;
&lt;br /&gt;
This HTTP header is not valid, according to the specification you can only specify a domain or a &amp;quot;*&amp;quot;:&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin&lt;br /&gt;
&lt;br /&gt;
Please, review if you have a Proxy/Firewall/Web Server adding automatically values to that HTTP header.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Security rules are blocking requests using the Accept-Charset header&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some security rules, such as OWASP ModSecurity, are blocking requests with this header that is sent by the Moodle App. In future releases of the app, this problem will be fixed. But in the meantime, you should disable it. Find more about this in MOBILE-4342.&lt;br /&gt;
=== My certificate is fine but the Moodle app is detecting http instead of https ===&lt;br /&gt;
If the Moodle app is detecting http instead of https, please revise config.php (check &amp;quot;wwwroot&amp;quot; as well as &amp;quot;httpswwwroot&amp;quot;)&lt;br /&gt;
===After updating Moodle LMS to a recent version my users cannot login===&lt;br /&gt;
This only applies to sites that are configured to use log in via an embedded browser pointing to their Moodle site.&lt;br /&gt;
This behaviour could be related to this Moodle LMS issue: https://tracker.moodle.org/browse/MDL-81897.&lt;br /&gt;
There are several ways to fix this issue:&lt;br /&gt;
# Upgrade their Moodle site to any of the indicated version in the issue that will solve the problem&lt;br /&gt;
# Manually apply the patch here: https://github.com/jleyva/moodle/compare/462d5f04a8...MDL-81897-master&lt;br /&gt;
# Immediate workaround: Change the app authentication so it will launch in a separate browser, by going to Site admin &amp;gt; Mobile app authentication &amp;gt; Type of login (and select the option that mentions external/system browser), remember to Save Changes&lt;br /&gt;
We’d recommend doing 3) that will immediately address the issue that is affecting new logins.&lt;br /&gt;
===I can&#039;t get the app to work. What can I do?===&lt;br /&gt;
Assuming you have enabled mobile services on your site (please visit [[Moodle app guide for admins]]), please check:&lt;br /&gt;
# If your site uses an SSL certificate, it must be a trusted certificate, not self-signed. Please use these tools or a similar one to check that your certificate is valid: [https://www.sslshopper.com/ssl-checker.html SSL Checker], [https://www.geocerts.com/ssl_checker SSL Checker], and [https://www.ssllabs.com/ssltest/analyze.html SSL Server Test]. All the checks must be ok, including the &amp;quot;Certificate Chain Complete&amp;quot;. Otherwise the app might work on iOS but not on Android.&lt;br /&gt;
# Make sure that the &amp;quot;Access-Control-Allow-Origin&amp;quot; header only contains one item. For example, a header like this: Access-Control-Allow-Origin: *, &amp;lt;nowiki&amp;gt;https://mydomain.com&amp;lt;/nowiki&amp;gt; will cause problems.&lt;br /&gt;
# [[Debugging]] is disabled (in &#039;&#039;Site administration &amp;gt; Development &amp;gt; Debugging&#039;&#039;)&lt;br /&gt;
# The ADOdb debug option is disabled if you are using the external database auth or enrolment plugin (in &#039;&#039;Plugins &amp;gt; Authentication &amp;gt; External database&#039;&#039; and in &#039;&#039;Plugins &amp;gt; Enrolment &amp;gt; External database&#039;&#039;).&lt;br /&gt;
# SHA-1 https certificates are not supported anymore in Chrome, this means that the Android version of the app won&#039;t work for your site. If your site doesn&#039;t work in desktop Chrome or Chromium it won&#039;t work in the Android app. See https://blog.chromium.org/2014/09/gradually-sunsetting-sha-1.html for more information&lt;br /&gt;
# If you are using IIS check that Anonymous access is not disabled for the /webservice directory.&lt;br /&gt;
# If you are using a web application firewall like AWS WAF, StackPath, Barracuda, Cloudflare, Juniper, etc... try to temporary disable it to check if that&#039;s the cause. If so, you&#039;ll have to whitelist these endpoints: login/token.php, webservice/*, lib/ajax/*, media/player/vimeo/wsplayer.php and /tokenpluginfile.php&lt;br /&gt;
You can also add WAF rules to allow traffic by detecting the app user agent such as: (http.user_agent contains &amp;quot;MoodleMobile&amp;quot;)&lt;br /&gt;
If you still have a problem, please post in the [https://moodle.org/mod/forum/view.php?id=7798 Moodle for mobile forum].&lt;br /&gt;
&lt;br /&gt;
If the issue started after updating Moodle LMS please visit [https://docs.moodle.org/en/Moodle_app_FAQ#After_updating_Moodle_LMS_to_a_recent_version_my_users_cannot_login After updating Moodle LMS to a recent version my users cannot login].&lt;br /&gt;
&lt;br /&gt;
=== I cannot access with old users, but I can with recently created ones! ===&lt;br /&gt;
Please, do a &amp;quot;Purge all caches&amp;quot; via the Moodle administration settings, this will solve the problem.&lt;br /&gt;
===I can&#039;t view the courses tab as an administrator===&lt;br /&gt;
The Moodle app only displays courses you are enrolled in. If you want to view a course as an admin, you need to enrol in it.&lt;br /&gt;
===My Moodle site uses a SSO auth method (Shibboleth, Google OAuth, etc) and the app is not working===&lt;br /&gt;
See the section &#039;Mobile authentication&#039; in the [[Moodle app guide for admins]] for details of how to configure it.&lt;br /&gt;
&lt;br /&gt;
If configured the app is still not connecting: If your site uses an SSL certificate, it must be a trusted certificate, not self-signed. Please use this tool or a similar one to check that your certificate is fine: [https://www.geocerts.com/ssl_checker SSL Checker]. All the checks must be OK, including the &amp;quot;Certificate Chain Complete&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If your SSO method is unable to authenticate when using an &amp;quot;embedded browser&amp;quot; (it gives an authentication error), please check if it works with a &amp;quot;browser window&amp;quot;. If it does work with the browser window then it means your SSO is performing an HTTP redirect, and these kind of redirects aren&#039;t supported by the app (the request is redirected by the browser not passing the POST parameters). Unfortunately, this is something we cannot control in the Mobile app (it can&#039;t be handled via JavaScript). For further information, see http://stackoverflow.com/questions/228225/prevent-redirection-of-xmlhttprequest and http://stackoverflow.com/questions/4168784/ajax-redirection-handling&lt;br /&gt;
&lt;br /&gt;
There are only 2 possible solutions: set the authentication via a &amp;quot;browser window&amp;quot; instead of an embedded one (please notice this won&#039;t work in the Linux desktop app), or remove the redirect from the SSO auth method.&lt;br /&gt;
&lt;br /&gt;
===SSO is not working with my custom auth plugin===&lt;br /&gt;
SSO should work in any plugin if the plugin handles correctly the $SESSION-&amp;gt;wantsurl, this is the way SSO works when it is launched via the app:&lt;br /&gt;
* It launchs this URL https://yourmoodle/admin/tool/mobile/launch.php?service=local_mobile&amp;amp;passport=abc in the device browser &lt;br /&gt;
* If the user is not logged in, the browser will redirect the user to the login page&lt;br /&gt;
* If the auth plugin used implements correctly the handling of the wantsurl session var, once the user has logged in, the browser should redirect back to the https://yourmoodle/admin/tool/mobile/launch.php?service=local_mobile&amp;amp;passport=abc URL that will launch the mobile app via the custom URL protocol&lt;br /&gt;
Custom auth plugins may be failing in the last step,not redirecting back to tool/mobile, this will happen only if the plugin does not support correctly the $SESSION-&amp;gt;wantsurl.&lt;br /&gt;
&lt;br /&gt;
The SAML plugin works correctly but some modifications of that plugin may not work if important lines are changed.&lt;br /&gt;
===I am having problems requesting an airnotifier access key===&lt;br /&gt;
If you have registered your site but are still unable to request an access key, please register your site on the Moodle Apps Portal https://apps.moodle.com once your site is registered there, an Airnotifier access key will be automatically generated for you.&lt;br /&gt;
=== Push notifications are not working ===&lt;br /&gt;
Please check [[Mobile app notifications#Troubleshooting]]&lt;br /&gt;
=== How notifications icon badges are updated ===&lt;br /&gt;
&#039;&#039;&#039;Android&#039;&#039;&#039;: Not all Android devices support icon badges so in some cases badges will never display numbers, also, depending on the device only a badge indicating that there are new notifications will be displayed when receiving a Push notification when the app is not in the foreground.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;iOS&#039;&#039;&#039;: The icon badge counter is only updated when the app is open and it will reflect the number of notifications pending reading or the number of message senders that sent you a message you have not read yet&lt;br /&gt;
&lt;br /&gt;
In general, for iOS the icon badge displayed number should match the one displayed at the bottom of the app (or it should be the sum of the notifications and messages badges) and is not an indicator of the number of Push notifications the user has received, it acts as a reminder of pending notifications to be read that only gets updated when the user open the apps&lt;br /&gt;
&lt;br /&gt;
There is an open issue to improve the behaviour on iOS, please watch MDL-73707&lt;br /&gt;
=== I configured &#039;QR code access&#039; to automatic login, but the app still asks for credentials  ===&lt;br /&gt;
Automatic authentication only works for Premium sites. You can see the app plans [https://moodle.com/app/ in this site].&lt;br /&gt;
&lt;br /&gt;
If you&#039;re getting an error saying that the device you&#039;re using to connect isn&#039;t in the same network as the device that displays the QR code but both devices are connected to the same network, please check the section: [[#ipmismatch:_.27Client_IP_address_mismatch.27|ipmissmatch: &#039;Client IP address mismatch&#039;]].&lt;br /&gt;
&lt;br /&gt;
=== I can log in on my Moodle site but I see a blank page or the app styles broken ===&lt;br /&gt;
This is usually because your Moodle site has a customised CSS. &lt;br /&gt;
&lt;br /&gt;
Please try leaving empty CSS (&#039;&#039;mobilecssurl&#039;&#039;) on Site administration &amp;gt; Mobile app &amp;gt; Mobile appearance. If that works, please read [https://docs.moodle.org/dev/Moodle_App_Remote_Themes Moodle App Remote Themes] and create a new CSS file using the variables mentioned there&lt;br /&gt;
&lt;br /&gt;
===The Moodle app does not connect to MoodleBox (or other internal self-hosted systems)===&lt;br /&gt;
You will need to disable SSL to make the app works, please see this forum discussion for more information: https://moodle.org/mod/forum/discuss.php?d=424353#p1739474&lt;br /&gt;
===I think I found a bug with the app. Where can I report it?===&lt;br /&gt;
# Log in to the [https://tracker.moodle.org/browse/MOBILE Moodle Mobile tracker] (you&#039;ll need to [http://tracker.moodle.org/secure/Signup%21default.jspa create a tracker account] if you&#039;ve not done so previously)&lt;br /&gt;
# Check whether the issue has already been reported by doing a [https://tracker.moodle.org/issues/?jql=project%20%3D%20MOBILE search]&lt;br /&gt;
# If not, report the bug by clicking the &#039;Create Issue&#039; link at the top right of the page, selecting &#039;Moodle app&#039; as the project&lt;br /&gt;
# Add a detailed description providing as much information as possible (Moodle version, app version, device model and operating system, etc...), then click the Create button&lt;br /&gt;
===How can I get the app in my language?===&lt;br /&gt;
[[File:setting the app lang.png|thumb|100px|Setting your language]]&lt;br /&gt;
The Moodle app automatically detects your mobile&#039;s language and displays in the same language (if the translation exists). Otherwise, you can set the app language in App settings &amp;gt; General.&lt;br /&gt;
&lt;br /&gt;
See also a post explaining how multi-lang works in the Moodle app: [https://moodle.org/mod/forum/discuss.php?d=453445#p1825637 Re: Language selector missing in Moodle app]&lt;br /&gt;
&lt;br /&gt;
If the Moodle app is not yet available in your language, please contribute a translation! See [https://docs.moodle.org/dev/Translating%20Moodle%20Mobile Translating Moodle Mobile] for details of what to do.&lt;br /&gt;
&lt;br /&gt;
=== Changes made to a Moodle site URL can cause logged-in users’ data to fail when synchronising. ===&lt;br /&gt;
We recommend that administrators manually log out all users after a site rename. If your site URL changes and have site users that are using the mobile Moodle App we suggest the following:&lt;br /&gt;
* For users that have not yet logged in - we recommend sending them the new URL&lt;br /&gt;
*   For users already using the mobile Moodle App and potentially logged in request them to:&lt;br /&gt;
** log out of the mobile Moodle App,&lt;br /&gt;
** delete the old site, and&lt;br /&gt;
** log in using the new URL&lt;br /&gt;
Logged in Moodle users can continue working with the previous URL (with cached information) but they will not be able to synchronise the new information (therefore not receiving new information from their teachers, and teachers not receiving data or submissions from those students).&lt;br /&gt;
* To avoid the risk of data not synchronising, we recommend the site administrator logs out all app users, by manually deleting their tokens:&lt;br /&gt;
** Go to Site administration&lt;br /&gt;
** Click Server &lt;br /&gt;
** Click Web services &lt;br /&gt;
** Click Manage tokens &lt;br /&gt;
** Delete the tokens&lt;br /&gt;
Take into account that you still need to request your users to log in using the new URL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Embedded content is not working ===&lt;br /&gt;
&lt;br /&gt;
This could be caused because your site is using a Content-Security-Policy that is preventing the app from embedding content.&lt;br /&gt;
&lt;br /&gt;
You can easily detect this when an error like this is displayed (javascript console): Refused to load URL because it does not appear in the frame-ancestors directive of the Content Security Policy.&lt;br /&gt;
&lt;br /&gt;
If that&#039;s the case, you&#039;d need to add the following elements: http://localhost moodleappfs://localhost at the end of the &amp;quot;Content-Security-Policy&amp;quot; HTTP header:&lt;br /&gt;
&lt;br /&gt;
An example of a CSP allowing embedding Vimeo videos in the site and content in the app:&lt;br /&gt;
Content-Security-Policy: frame-ancestors &#039;self&#039; https://*.vimeocdn.com https://*.vimeows.com https://*.vimeo.com http://localhost moodleappfs://localhost ;&lt;br /&gt;
&lt;br /&gt;
Other type of embedded content that does not work is content hosted by Microsoft tools that require session or any type of authentication, such as SharePoint content.&lt;br /&gt;
&lt;br /&gt;
=== Some activities are displayed incorrectly (blank, just a vertical line, ..) on the app ===&lt;br /&gt;
Please visit the forum post [[https://moodle.org/mod/forum/discuss.php?d=461909#p1854918| Some lesson activities do not display at all]].&lt;br /&gt;
&lt;br /&gt;
=== Does the mobile app work on HarmonyOS devices such as Huawei? ===&lt;br /&gt;
&lt;br /&gt;
The Moodle mobile app only officially supports Android and iOS operating systems; we cannot guarantee it will work on derived distributions.&lt;br /&gt;
&lt;br /&gt;
What we can guarantee is that Push Notifications won&#039;t work as they depend on Google Play services (Firebase Cloud Messaging)&lt;br /&gt;
&lt;br /&gt;
==Error messages==&lt;br /&gt;
=== &#039;Coding error: version.php file is missing for the component&#039; ===&lt;br /&gt;
This error message indicates that that plugin is not correctly installed (or uninstalled) on the Moodle site you use (see [[Installing plugins]]). Please review the mod/certificate folder to check if the version.php file is missing (or has incorrect permissions) as well as purge cache too.&lt;br /&gt;
=== &#039;Can not find data record in database table external_functions&#039; ===&lt;br /&gt;
This error usually happens due to a bad configuration or setting value in your Moodle site, please check:&lt;br /&gt;
# The user quota global setting should be an integer. For more details, see the discussion [https://moodle.org/mod/forum/discuss.php?d=320873 How to enable Moodle Mobile App for all accounts].&lt;br /&gt;
# The &#039;&#039;usermaxuploadfilesize&#039;&#039; should be an integer, please try to decrease the size. It can be configured in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; Site Policies &amp;gt; Maximum uploaded file size&#039;&#039;. The default value (Site upload limit) depends on the PHP configuration, you might have to change the value of &#039;&#039;upload_max_filesize&#039;&#039; and &#039;&#039;post_max_size&#039;&#039; in your &#039;&#039;php.ini&#039;&#039; file.&lt;br /&gt;
# The user &amp;quot;lang&amp;quot; field in the database is set to a correct value and existing language installed in the site. Some times the lang field is set via external systems to incorrect values or pointing to a language pack that was uninstalled. Please, note that to fix this you need direct access to the database and your &#039;user&#039; and &#039;course&#039; table.&lt;br /&gt;
===&#039;Cannot connect: Verify that you have typed correctly the URL and that your site uses Moodle 3.5 or later&#039;===&lt;br /&gt;
Take into account that the app will only connect to Moodle LMS sites version 3.5 onward.&lt;br /&gt;
Please also check:&lt;br /&gt;
# Mobile services are enabled for the site.&lt;br /&gt;
# The user is entering the correct URL for the site (see FAQ above)&lt;br /&gt;
# For https sites, the certificate is valid (see FAQ above)&lt;br /&gt;
===&#039;Invalid Moodle site version. The Moodle app only supports Moodle systems 3.5 onwards&#039;===&lt;br /&gt;
The app will only connect to Moodle LMS sites version 3.5 onward (see [https://docs.moodle.org/35/en/Upgrading Upgrade to 3.5] as well as [[Upgrade overview]]).&lt;br /&gt;
===&#039;We lost connection; you need to reconnect. Your token is now invalid.&#039; on my custom version of the Moodle app ===&lt;br /&gt;
Please check:&lt;br /&gt;
# You have followed all the steps listed in [https://docs.moodle.org/dev/Moodle%20Mobile%20Developing%20a%20plugin%20tutorial Moodle Mobile Developing a plugin tutorial]&lt;br /&gt;
# You have enabled the [[Capabilities/moodle/webservice:createtoken|moodle/webservice:createtoken]] for the authenticated user&lt;br /&gt;
===&#039;No permission to create web service token for the service local_mobile&#039; when attempting to log in (any user that it is not an admin)===&lt;br /&gt;
Please check you have enabled the moodle/webservice:createtoken for the authenticated user or any global role you want to allow to use the mobile app&lt;br /&gt;
===&#039;No permission to create web service token for the service local_mobile&#039; when attempting to log in as an admin===&lt;br /&gt;
You need to create a token for the admin account (only) as follows:&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Web services &amp;gt; Manage tokens&#039;&#039;&lt;br /&gt;
# Click Add&lt;br /&gt;
# Enter the admin username and select &#039;Moodle app additional features service&#039; (i.e. do NOT leave it as &#039;Moodle app web service&#039;)&lt;br /&gt;
# Click the &#039;Save changes&#039; button.&lt;br /&gt;
===&#039;Invalid response value detected&#039; when accessing the site ===&lt;br /&gt;
The user quota global setting should be an integer. For more details, see the discussion [https://moodle.org/mod/forum/discuss.php?d=320873 How to enable Moodle Mobile App for all accounts].&lt;br /&gt;
=== &#039; Invalid response value detected: Invalid external api response: the value is &amp;quot;&amp;quot;, the server was expecting &amp;quot;raw&amp;quot; type&amp;quot; ===&lt;br /&gt;
This usually happens when there is a field with value NULL in a table in the database that should not be there. This may happen if your Moodle has been upgraded over many years and the database schema is broken.&lt;br /&gt;
&lt;br /&gt;
To fix it, you can do the following: &lt;br /&gt;
* Detect the field that is causing the problem (it should be indicated before the error message)&lt;br /&gt;
* Fix the field, for example, for the password field in the lesson table: UPDATE mdl_lesson SET password = &#039;&#039; WHERE password IS NULL (remember that your table prefix can be different than mdl_)&lt;br /&gt;
===&#039;Invalid response value detected&#039; when accessing My Courses or Course Overview ===&lt;br /&gt;
This usually happens when a course uses a language that isn&#039;t installed in the site. Please make sure that all courses use valid languages. This can be easily checked in the database, table &amp;quot;course&amp;quot;, there is a column named &amp;quot;lang&amp;quot;.&lt;br /&gt;
===&#039;A required parameter (username) was missing&#039;===&lt;br /&gt;
This may happen if your site implements HTTP redirects; the request is redirected by the browser not passing the POST parameters.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, this is something we cannot control in the Mobile app (it can&#039;t be handled via JavaScript). For further information, see http://stackoverflow.com/questions/228225/prevent-redirection-of-xmlhttprequest and http://stackoverflow.com/questions/4168784/ajax-redirection-handling&lt;br /&gt;
&lt;br /&gt;
The solution is to change the HTTP redirect and use an HTML page with a meta tag or JavaScript redirect.&lt;br /&gt;
===&#039;Cannot get course contents&#039;===&lt;br /&gt;
This usually happens when the course is using a course format plugin that was uninstalled from the server or that was not properly installed.&lt;br /&gt;
&lt;br /&gt;
Please, reinstall again the course format plugin.&lt;br /&gt;
===&#039;Access control exception&#039; or &#039;Your authentication token is invalid or has expired&#039;===&lt;br /&gt;
Please double-check that &#039;Enable web services for mobile devices&#039; (&#039;&#039;enablemobilewebservice&#039;&#039;) is actually enabled. (It might be unabled if for example you have reseted some roles.)&lt;br /&gt;
&lt;br /&gt;
If this error appears as soon as you enter the username and password for a new site, then it probably means that the token expiration time is badly configured. This is how to fix it:&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Security &amp;gt; Site security settings&#039;&#039;.&lt;br /&gt;
# Find the setting named &#039;&#039;User created token duration&#039;&#039;.&lt;br /&gt;
# If the value is set to 0 or it&#039;s too low, please set it back to a valid value (the default value is 12 weeks).&lt;br /&gt;
# Click the &#039;Save changes&#039; button.&lt;br /&gt;
&lt;br /&gt;
===ipmismatch: &#039;Client IP address mismatch&#039;===&lt;br /&gt;
This error can appear when a user opens your site in a browser while using the app. This happens if your site is behind a proxy and you&#039;re using one of these Moodle versions o higher: 3.5.11, 3.6.9, 3.7.5, 3.8.2, 3.9.0.&lt;br /&gt;
&lt;br /&gt;
To fix it:&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Administration &amp;gt; Server &amp;gt; HTTP&#039;&#039;.&lt;br /&gt;
# Find the setting named &#039;&#039;Ignore reverse proxies&#039;&#039; (reverseproxyignore).&lt;br /&gt;
# Enter the IP of your proxy (or range of IPs).&lt;br /&gt;
# Click the &#039;Save changes&#039; button.&lt;br /&gt;
If you are still experiencing issues please try to change this setting &amp;quot;getremoteaddrconf&amp;quot; (Logged IP address source) to the different existing values.&lt;br /&gt;
&lt;br /&gt;
Finally, it is possible to disable the IP restriction checks for functionality such as the QR login, to do that, go to Site administration &amp;gt; Mobile app &amp;gt; Mobile app authentication, and disable the &amp;quot;QR authentication same IP check&amp;quot; setting.&lt;br /&gt;
=== &#039;The param &amp;quot;includestealthmodules&amp;quot; is invalid&#039; ===&lt;br /&gt;
Please contact your learning organisation so they upgrade to at least Moodle 3.5.3 (see [https://docs.moodle.org/35/en/Upgrading Upgrade to 3.5] as well as [[Upgrade overview]]) or they manually apply the patch listed here [[MDL-63542]].&lt;br /&gt;
&lt;br /&gt;
==Older versions of the Moodle app==&lt;br /&gt;
We always recommend using the last version of the Moodle App but some times users are still using older versions this is the reason we are keeping this list:&lt;br /&gt;
&lt;br /&gt;
=== Some users are asked to reauthenticate too often when they browse the site (Moodle App &amp;lt;3.9.3) ===&lt;br /&gt;
This can happen if the app is sending too many variables to a WebService, e.g. because a course has a large number of sections and/or activities. This error was fixed in the 3.9.3 version of the app, but if you are using an older version of the app you can increase the value of &#039;&#039;max_input_vars&#039;&#039; in &#039;&#039;php.ini&#039;&#039; to fix it in your server.&lt;br /&gt;
&lt;br /&gt;
=== After upgrading to 3.9.5 some of my plugins have stopped working ===&lt;br /&gt;
The Moodle App 3.9.5 version came with some breaking changes for plugins, most of the existing plugins have been updated to support the new changes.&lt;br /&gt;
Please check the following list of plugins that should work for 3.9.5 once you have upgraded to the latest version indicated in the document: https://docs.google.com/spreadsheets/d/1E9PqcUBpp9SAfQc_zJtX5tf9GeS3UN76A85IrrB4UDw/edit#gid=0&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7798 Moodle for mobile forum] on moodle.org.&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[de:Moodle Mobile - FAQ]]&lt;br /&gt;
[[ca:Moodle Mobile FAQ]]&lt;br /&gt;
[[es:Moodle app FAQ]]&lt;br /&gt;
[[fr:Moodle pour les mobiles]]&lt;br /&gt;
[[ja:バイルMoodle FAQ]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Creating_mobile-friendly_courses&amp;diff=154865</id>
		<title>Creating mobile-friendly courses</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Creating_mobile-friendly_courses&amp;diff=154865"/>
		<updated>2026-01-12T11:45:42Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Display alternative content in the Moodle app */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
As more and more students access courses from their smartphones, tablets or other mobile devices, it is increasingly important to ensure your courses are mobile-friendly.&lt;br /&gt;
&lt;br /&gt;
Encouraging students to install the [https://download.moodle.org/mobile/ official Moodle mobile app] is one way to improve their learning experience. Below are some suggestions for optimising your course materials for students both using the app and accessing Moodle from mobile devices.&lt;br /&gt;
==Setting up your course==&lt;br /&gt;
*Custom sections or weekly course format is best suited to mobile devices. In topics format, the first section or the highlighted section is shown by default in the app. In weekly format, the current week is shown.&lt;br /&gt;
*Don&#039;t use stealth activities or direct links to activities (the links will work but is not the best experience for mobile).&lt;br /&gt;
*Blocks are collapsed by default and can be expanded by clicking the arrow-like tab on the right.&lt;br /&gt;
*If you have a mix of students accessing the course on mobile and desktop, consider asking your admin to install the [[Moodle Mobile availability plugin]] which restricts items to desktop or mobile users.&lt;br /&gt;
&lt;br /&gt;
==Course content==&lt;br /&gt;
*Use responsive HTML in pages.&lt;br /&gt;
*Use a [[Page]] or [[Book]] instead of downloadable documents where possible.&lt;br /&gt;
*Use a [[Page]] or [[Book]] for videos instead of adding them in [[Text and media area|Text and media area resources]], avoid embedding more than one video in the same page.&lt;br /&gt;
*Avoid uploading many documents or having numerous, text heavy pages. Think more in terms of short &amp;quot;information-bytes&amp;quot;.&lt;br /&gt;
*If you include YouTube videos, keep them short and consider providing them for download and offline viewing in a [[Folder resource|folder]]. Not all video formats are supported so add them in different formats. (MP4 is probably the most widely accepted format.)&lt;br /&gt;
* For YouTube or Vimeo videos, you may use Bootstrap responsive classes: https://getbootstrap.com/docs/4.0/utilities/embed/, for example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;div class=&amp;quot;embed-responsive&amp;quot;&amp;gt;&amp;lt;video...&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Note that drag and drop questions behave differently in the app. You can&#039;t drag images, you need to tap to select and tap to drop.&lt;br /&gt;
*Note that if you add YouTube video links or map links as URL resources, they will open automatically in the app.&lt;br /&gt;
{|&lt;br /&gt;
| [[File:moodlemobile_short_text_intro.png|thumb|Short text for label]]&lt;br /&gt;
| [[File:moodlemobile_responsive_html.png|thumb|Responsive HTML]]&lt;br /&gt;
| [[File:moodlemobile_youtube_maps_links.png|thumb|Map link]]&lt;br /&gt;
|}&lt;br /&gt;
* Use only plugins with mobile app support so they can be accessed via the mobile app - see [https://moodle.org/plugins/browse.php?list=award&amp;amp;id=6 Moodle plugins directory: Award: mobile app support].&lt;br /&gt;
* Avoid relative URLs such as ../mod/page/views.php?id=X as the app won&#039;t be able to guess the proper URL, if it is necessary to use URLs without domain, please use absolute URLs such as /mod/page/views.php?id=X&lt;br /&gt;
&lt;br /&gt;
===Using Bootstrap components===&lt;br /&gt;
&lt;br /&gt;
The mobile app supports all &#039;&#039;&#039;[https://getbootstrap.com/docs/5.3/getting-started/introduction/ Bootstrap 5] CSS components&#039;&#039;&#039;; however, please refer to the list below for specific &#039;&#039;&#039;JavaScript (JS) component&#039;&#039;&#039; compatibility. To ensure backward compatibility, a subset of [https://getbootstrap.com/docs/4.6/getting-started/introduction/ &#039;&#039;&#039;Bootstrap 4&#039;&#039;&#039;] components will remain supported for a limited time.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;Supported Bootstrap 5 JS components&#039;&#039;&#039; &#039;&#039;Note: These components have been adapted to align with the app&#039;s framework and visual styles, so their behavior or appearance may differ slightly from the original Bootstrap implementation:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://getbootstrap.com/docs/5.3/components/collapse/ Collapse]&lt;br /&gt;
* [https://getbootstrap.com/docs/5.3/components/carousel/ Carousel]&lt;br /&gt;
* [https://getbootstrap.com/docs/5.3/components/accordion/ Accordion]&lt;br /&gt;
* [https://getbootstrap.com/docs/5.3/components/modal/ Modal]&lt;br /&gt;
* [https://getbootstrap.com/docs/5.3/components/popovers/ Popovers]&lt;br /&gt;
* [https://getbootstrap.com/docs/5.3/components/tooltips/ Tooltips]&lt;br /&gt;
* [https://getbootstrap.com/docs/5.3/components/navs-tabs/ Tabs]&lt;br /&gt;
* Dismiss / close button on:&lt;br /&gt;
** [https://getbootstrap.com/docs/5.3/components/close-button/ Alerts]&lt;br /&gt;
** [https://getbootstrap.com/docs/5.3/components/offcanvas/ Offcanvas]&lt;br /&gt;
** [https://getbootstrap.com/docs/5.3/components/toasts/ Toasts]&lt;br /&gt;
** [https://getbootstrap.com/docs/5.3/components/modal/ Modal]&lt;br /&gt;
&lt;br /&gt;
Please note that not all component properties are supported. We recommend testing your content within the app to verify its functionality and appearance.&lt;br /&gt;
&lt;br /&gt;
=== Display mode utility classes for the app ===&lt;br /&gt;
Moodle App has introduced specific CSS classes that allow content creators to toggle the visibility and display behavior of elements specifically within the &#039;&#039;&#039;Moodle App&#039;&#039;&#039;. This provides a way to override standard Bootstrap classes (like &amp;lt;code&amp;gt;d-none&amp;lt;/code&amp;gt;) to create a tailored mobile experience.&lt;br /&gt;
&lt;br /&gt;
==== General display classes ====&lt;br /&gt;
These classes are used to control how elements behave in the mobile app regardless of the operating system (iOS or Android).&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|CSS Class&lt;br /&gt;
|Effect in the Mobile App&lt;br /&gt;
|Use Case&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mobileapp-d-none&amp;lt;/code&amp;gt;&lt;br /&gt;
|&#039;&#039;&#039;Hides&#039;&#039;&#039; the element.&lt;br /&gt;
|Content that should only be visible on desktop.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mobileapp-d-block&amp;lt;/code&amp;gt;&lt;br /&gt;
|Displays as &#039;&#039;&#039;block&#039;&#039;&#039;.&lt;br /&gt;
|Making a hidden element (&amp;lt;code&amp;gt;d-none&amp;lt;/code&amp;gt;) visible in the app.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mobileapp-d-inline&amp;lt;/code&amp;gt;&lt;br /&gt;
|Displays as &#039;&#039;&#039;inline&#039;&#039;&#039;.&lt;br /&gt;
|Inline text or icons specific to mobile users.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mobileapp-d-inline-block&amp;lt;/code&amp;gt;&lt;br /&gt;
|Displays as &#039;&#039;&#039;inline-block&#039;&#039;&#039;.&lt;br /&gt;
|Inline block text or icons specific to mobile users.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mobileapp-d-flex&amp;lt;/code&amp;gt;&lt;br /&gt;
|Displays as &#039;&#039;&#039;flex&#039;&#039;&#039;.&lt;br /&gt;
|Flexible layouts optimized for mobile screens.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Platform-Specific Classes (OS) ====&lt;br /&gt;
You can target users based on their specific mobile device. This is useful for providing specific instructions for Android or iOS users (e.g., store links or system settings).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Android:&#039;&#039;&#039; &amp;lt;code&amp;gt;mobileapp-android-d-block&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mobileapp-android-d-none&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mobileapp-android-d-inline&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
* &#039;&#039;&#039;iOS:&#039;&#039;&#039; &amp;lt;code&amp;gt;mobileapp-ios-d-block&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mobileapp-ios-d-none&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mobileapp-ios-d-inline&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
&lt;br /&gt;
===== Show content ONLY in the Mobile App =====&lt;br /&gt;
Use the Bootstrap &amp;lt;code&amp;gt;d-none&amp;lt;/code&amp;gt; class to hide it everywhere, then use the mobile class to reveal it in the app.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;div class=&amp;quot;d-none mobileapp-d-block&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    This message is only visible to users inside the Mobile App.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Hide content in the Mobile App =====&lt;br /&gt;
Use the Bootstrap &amp;lt;code&amp;gt;d-block&amp;lt;/code&amp;gt; class to show it on the web, and the mobile class to hide it in the app.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;div class=&amp;quot;d-block mobileapp-d-none&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    This section is hidden in the app to save data or screen space.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Targeted OS Messaging =====&lt;br /&gt;
Messages won&#039;t be shown on the web and will be different on iOS and Android.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;div class=&amp;quot;mobileapp-ios-d-block d-none&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    Instructions specifically for iPhone/iPad users.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;div class=&amp;quot;mobileapp-android-d-block d-none&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    Instructions specifically for Android users.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Media download for offline usage===&lt;br /&gt;
To enable media files, such as video, to be automatically downloaded when viewed.&lt;br /&gt;
* The file must be uploaded to the course, rather than being linked to (from YouTube, Vimeo etc.)&lt;br /&gt;
* The file must be small - less than 2MB for 3G users or less than 20MB for WiFi users&lt;br /&gt;
When a page containing the video is viewed (without playing the video), the file will then be downloaded.&lt;br /&gt;
&lt;br /&gt;
When using Moodle Mobile 3.1 or later with a WiFi connection, when the video is played, the file will be downloaded in the background. The next time the video is played, the downloaded file will be used.&lt;br /&gt;
&lt;br /&gt;
Please note that if the user did a full download of the courses, the files will be downloaded regardless its size.&lt;br /&gt;
&lt;br /&gt;
===Activities===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quizzes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Quizzes with lots of questions do not perform very well on the website or the app as the backend server will have to do heavy preparatory work, especially if random questions are used. &lt;br /&gt;
&lt;br /&gt;
In general, our recommendation is to avoid having just a quiz with lots of questions, it is better to split it into different quizzes.&lt;br /&gt;
&lt;br /&gt;
Another recommendation is to limit the number of questions per page to avoid having more than 5 questions displayed on a single page on a very narrow screen.&lt;br /&gt;
&lt;br /&gt;
===Offline activities===&lt;br /&gt;
All the supported activities work offline, although some require specific settings like the lesson and quiz module, you can find bellow additional information:&lt;br /&gt;
* [[Moodle Mobile quiz offline attempts]] &lt;br /&gt;
* [[Moodle app H5P support#Working offline|Moodle H5P]]&lt;br /&gt;
* [[Moodle app SCORM player]]&lt;br /&gt;
&lt;br /&gt;
=== Things to avoid===&lt;br /&gt;
Some activities are not yet fully supported by the mobile app, so find alternatives. See [[Moodle Mobile SCORM player]] for things to avoid in SCORM packages.&lt;br /&gt;
&lt;br /&gt;
You can find the list of activities supported by the app in the [[Moodle Mobile features]] page.&lt;br /&gt;
&lt;br /&gt;
==Use the latest stable version of Moodle==&lt;br /&gt;
As indicated in [[Moodle Mobile features]] some features are only available in recent Moodle versions.&lt;br /&gt;
&lt;br /&gt;
It is recommended to use the [https://moodledev.io/general/releases latest stable version].&lt;br /&gt;
&lt;br /&gt;
==Notifications and messages==&lt;br /&gt;
Encourage your students to enable mobile notifications so they are alerted about calendar events, forum posts, messages, assignment submissions and so on. Find out more in [[Mobile app notifications]].&lt;br /&gt;
&lt;br /&gt;
You can also enable mobile notifications for all the users by default via the [[Messaging settings]] default message outputs. Students can disable Mobile notifications within the app.&lt;br /&gt;
==Mobile device considerations==&lt;br /&gt;
The app works better on devices running modern devices.&lt;br /&gt;
&lt;br /&gt;
In old devices you may find problems related to:&lt;br /&gt;
* User interface&lt;br /&gt;
* Connection problems (specifically when connecting to sites using https certificates)&lt;br /&gt;
* Slowness&lt;br /&gt;
&lt;br /&gt;
==Links to open the Moodle app==&lt;br /&gt;
If required, links which open the Moodle app may be provided in the course (for users browsing the site using a mobile device with the app installed).&lt;br /&gt;
&lt;br /&gt;
Links are of the form &amp;lt;code&amp;gt;moodlemobile://https://username@domain.com?token=TOKEN&amp;amp;privatetoken=PRIVATETOKEN&amp;amp;redirect=http://domain.com/course/view.php?id=2&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Please notice that this kind of links are only supported in Moodle app 3.7.0 onwards. If your app has an older version you&#039;ll have to use the old format: &amp;lt;code&amp;gt;moodlemobile://link=https://yourmoodlesite.org/mod/...&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For more information about this, please read [https://docs.moodle.org/dev/Open_the_Moodle_app_from_another_app Open the Moodle app from another app].&lt;br /&gt;
&lt;br /&gt;
==Display alternative content in the Moodle app==&lt;br /&gt;
In some cases, content that works perfectly in a web browser (Moodle LMS) might not work as intended within the Moodle app, for example, certain iframes or complex embeds. Since the Moodle app version 5.1, you can now provide alternative text or links specifically for app users using two HTML attributes.&lt;br /&gt;
&lt;br /&gt;
To do this, you need to edit the source code of your content (the HTML) and add the following attributes to an element to replace its contents:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;data-app-alt-msg&#039;&#039;&#039;: The text to display inside the element. If not present, only &#039;&#039;data-app-alt-url&#039;&#039; will be displayed.&lt;br /&gt;
* &#039;&#039;&#039;data-app-alt-url&#039;&#039;&#039;: A clickable URL that appears after the message text.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note I&#039;&#039;&#039;: These attributes replace the content (children) of the element they are placed on, not the element itself. Always place these attributes on a parent container (like a &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;div&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note II&#039;&#039;&#039;: These attributes might be removed by your Moodle site filtering depending on the values of these settings: &amp;quot;Content cleaning everywhere (forceclean)&amp;quot; if it is enabled and &amp;quot;Enable trusted content (enabletrusttext)&amp;quot; if it is disabled. &lt;br /&gt;
&lt;br /&gt;
==== Example: Replacing an incompatible iframe ====&lt;br /&gt;
If you have an iframe that works fine in Moodle LMS but it doesn&#039;t in the Moodle app, you can wrap it in a &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;div&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; to provide a fallback link for app users:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;div data-app-alt-url=&amp;quot;https://videourl.com&amp;quot; data-app-alt-msg=&amp;quot;This video is not compatible with the app. Please click the link to open it in a browser.&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   &amp;lt;iframe src=&amp;quot;https://videonotappcompatible.com&amp;quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;What the user sees:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* On desktop: The iframe renders normally.&lt;br /&gt;
* In the Moodle app: The user sees &amp;quot;This video is not compatible with the app. Please click the link to open it in a browser.&amp;quot;, followed by the link specified in data-app-alt-url.&lt;br /&gt;
&lt;br /&gt;
==Learn more==&lt;br /&gt;
* Free course on Moodle Academy [https://moodle.academy/enrol/index.php?id=100 Moodle App configuration]&lt;br /&gt;
* Forum post: [https://moodle.org/mod/forum/discuss.php?d=349160 Try the Moodle Mobile app with a mobile-friendly course].&lt;br /&gt;
* [https://docs.moodle.org/dev/Creating_mobile_question_types How to make third party question types work in Mobile] documentation for developers&lt;br /&gt;
[[de:Moodle Mobile - Websites optimieren]]&lt;br /&gt;
[[es:Crear sitios amistosos para Moodle Mobile]]&lt;br /&gt;
[[fr:Créer des cours pour appareils mobiles]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_FAQ&amp;diff=154785</id>
		<title>Moodle app FAQ</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_FAQ&amp;diff=154785"/>
		<updated>2025-12-01T08:24:00Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Administrators */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
==Students==&lt;br /&gt;
===How can I log in?===&lt;br /&gt;
To log in to your Moodle site with the Moodle App, you need the URL (web address) of the Moodle site that you’re trying to access. If your organisation has Search enabled, you can try searching by the name of your organisation or eLearning site.&lt;br /&gt;
&lt;br /&gt;
If your organisation allows you to log in via QR code, you’ll find the QR code at the bottom of your user profile on your Moodle site. You just need to press “Scan QR code” on the app, scan the QR code on your profile and you’ll be logged in automatically.&lt;br /&gt;
&lt;br /&gt;
If your organisation allows you to log in using face recognition or fingerprint, you can activate this in the App, going to User account &amp;gt; Preferences. You’ll need to have biometric authentication enabled in your own device’s settings. &lt;br /&gt;
===Who can I contact for help with the app?===&lt;br /&gt;
If you’re a student and need help with issues related to logging in, registering to a Moodle site or trouble connecting to the app, you should contact your school or learning organisation. For example, one of your teachers, or the person who takes care of Moodle.&lt;br /&gt;
Moodle HQ make the Moodle software and the Moodle app, but they don’t manage nor have access to your Moodle site or your user data.&lt;br /&gt;
===How can I get the Moodle app?===&lt;br /&gt;
You can download the Moodle App for free from [https://play.google.com/store/apps/details?id=com.moodle.moodlemobile Google Play] and the Apple [https://itunes.apple.com/app/moodle-mobile/id633359593?mt=8 App Store]. You will find it by searching “Moodle”, and the author/owner is “Moodle Pty Ltd”.&lt;br /&gt;
If you are unable to download the app from Google play, please visit [https://download.moodle.org/mobile/ Moodle app downloads]&lt;br /&gt;
===I can&#039;t get the app to work. ===&lt;br /&gt;
To ensure that the Moodle app functions properly, please double-check that you have correctly entered the URL address of the Moodle site you are using (please visit [https://docs.moodle.org/en/Moodle_app_FAQ#I_can%E2%80%99t_find_my_Moodle_site_in_the_app. I can’t find my Moodle site in the app]). If you are experiencing difficulties connecting to your site, please contact the person or team who takes care of Moodle in your school or learning organisation. Please note the app only works with Moodle sites that have been set up to allow it, and that are running on at least Moodle 3.5.&lt;br /&gt;
&lt;br /&gt;
===I can’t find my Moodle site in the app. ===&lt;br /&gt;
To find your Moodle site on the app login screen, try searching for the name of your school or learning organisation.&lt;br /&gt;
&lt;br /&gt;
If your school or organisation doesn’t appear in the search, you can try searching by your Moodle site URL address instead. If you don’t know the address of your Moodle site, here’s how you can find it:&lt;br /&gt;
# Open a web browser (like Chrome or Safari) and go to your school’s Moodle site login page.&lt;br /&gt;
# At the top of the page in the address bar, you&#039;ll see the URL address of your Moodle site, e.g. “campus.example.edu”. [[File:FAQ I cant find my site 1.png|alt=URL|thumb|none|&#039;&#039;campus.example.edu&#039;&#039;]]&lt;br /&gt;
# Copy the URL (don’t copy the /login nor what comes after), paste it into Your site in the app, then select Connect to your site. [[File:FAQ I cant find my site 2.png|alt=Adding an URL to the app|thumb|none|Adding an URL to the app]]&lt;br /&gt;
# Now you can log in to your site with your username and password.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you tried searching by URL address and still can’t find your Moodle site, please get in touch with the person who takes care of Moodle in your school or learning organisation.&lt;br /&gt;
===I can’t log in with the app===&lt;br /&gt;
To log in to your Moodle site using the app, you first need to connect to your school’s Moodle site (view [[I can’t find my Moodle site in the app]] if you can’t find your site).&lt;br /&gt;
&lt;br /&gt;
Once you’ve connected to your Moodle site, you should be able to log in with your usual username and password.&lt;br /&gt;
&lt;br /&gt;
If you forgot your username or password, select the option &#039;&#039;&#039;Forgotten your username or password?&#039;&#039;&#039;. If you still have trouble logging in or can’t see any options for retrieving your username or password, please get in touch with the person who takes care of Moodle in your school or learning organisation.&lt;br /&gt;
===I see an error message when I try to use the app===&lt;br /&gt;
If you see an error message that prevents you from using the app, please get in touch with the person who takes care of Moodle in your school or learning organisation. &lt;br /&gt;
&lt;br /&gt;
Some of the most common errors that your school or learning organisation will be able to fix are:&lt;br /&gt;
* Your token is expired or not valid.&lt;br /&gt;
* An error mentioning the parameter “includestealthmodules”.&lt;br /&gt;
* The web service function is not available.&lt;br /&gt;
* A message about site maintenance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you’re experiencing any of these errors, contact your school or learning organisation for help.&lt;br /&gt;
===What permissions does the app require?===&lt;br /&gt;
The app requires the following permissions:&lt;br /&gt;
* Record audio - for uploading to your Moodle site&lt;br /&gt;
* Read and modify the contents of your SD card - for content to be downloaded to your SD Card for offline access.&lt;br /&gt;
* Network access - to be able to connect with your Moodle site and check if you are connected, and if not to switch to offline mode.&lt;br /&gt;
* Run at startup - to receive local notifications even when the app is running in the background.&lt;br /&gt;
* Prevent phone from sleeping - to receive push notifications anytime.&lt;br /&gt;
===What are the minimum device requirements to use the Moodle app?===&lt;br /&gt;
Android devices: Require Android 7.0 or later. (Users with Android 5 and 6 can still use version 4.3, but they will not receive any new updates.)&lt;br /&gt;
&lt;br /&gt;
iOS devices (iPhones/iPads): Require iOS 13 or later. (Please note the app was only tested on versions iOS 14 and onward.)&lt;br /&gt;
&lt;br /&gt;
===I can&#039;t see my course on the app. What do I do?===&lt;br /&gt;
Check with your course tutor that you are correctly enrolled.&lt;br /&gt;
=== Why can&#039;t I upload my assignment on the app?===&lt;br /&gt;
If you’re experiencing any issue uploading assignment, please contact your school or learning organisation for help.&lt;br /&gt;
===Why can&#039;t I sometimes access the app or submit anything to it?===&lt;br /&gt;
This could be because of interruptions in your internet connection. Wait a while and try again. If you continue to have problems, contact your school or learning organisation for help.&lt;br /&gt;
===Is there a space limit on my files?===&lt;br /&gt;
Assignments will have a size limit which you can see, those are set by your teachers. For other space limit questions, check with your your school or learning organisation .&lt;br /&gt;
===When are activities completed offline synchronized?===&lt;br /&gt;
See [[Moodle app synchronization]].&lt;br /&gt;
===Why the site is asking for my username and password when an activity is opened in the browser?===&lt;br /&gt;
For security reasons, between auto-logins you must wait 6 minutes (this should not be a problem because most of the browsers will keep your Moodle session open).&lt;br /&gt;
In recent Moodle versions, the previous value can be configured in Site Administration &amp;gt; Mobile app authentication &amp;gt;  Minimum time between auto-login requests&lt;br /&gt;
&lt;br /&gt;
=== The Moodle app might seem slow (especially on Android devices) ===&lt;br /&gt;
If the app feels slow, it might be due to things outside the app itself. This can include:&lt;br /&gt;
* Slow internet connection&lt;br /&gt;
* Network problems&lt;br /&gt;
* The server responding slowly&lt;br /&gt;
* Content or settings not made for mobile&lt;br /&gt;
* Using the app on an old or slow device&lt;br /&gt;
&lt;br /&gt;
We test the app carefully on many sites before each release, and we’re confident it usually works as well as or better than the website.&lt;br /&gt;
&lt;br /&gt;
To make sure your site works well on mobile, please check [[Creating mobile-friendly courses]]&lt;br /&gt;
&lt;br /&gt;
Finally, to troubleshoot this problem, we recommend trying the application with our demo site: https://school.moodledemo.net. Simply use the username &amp;quot;student&amp;quot; and the relevant password to access the site. If you find that the navigation and overall experience with the app are improved, then the issue may be at the server level. In this case, we suggest contacting your school or learning organisation for further assistance.&lt;br /&gt;
&lt;br /&gt;
=== The Moodle app restarts/ closes / reopenes itself ===&lt;br /&gt;
This is likely because there are too many apps opened on your mobile device. Mobile devices have a finite amount of memory, and the device&#039;s memory manager is responsible for determining which applications to keep open and which to close.&lt;br /&gt;
To optimise your device&#039;s performance, we recommend closing all applications that are not currently in use. This will free up valuable memory and ensure that your device runs smoothly.&lt;br /&gt;
===I use LineageOS and I&#039;m having problems using the app===&lt;br /&gt;
LineageOS uses a different WebView implementation not compatible vith the app. You need to install &amp;quot;Android System WebView&amp;quot; from Google Play (or via a trusted apk) and enabling it via Settings &amp;gt; Developer options &amp;gt; WebView implementation.&lt;br /&gt;
===H5P packages and external content embedded via iframes are not working on iOS ===&lt;br /&gt;
This is caused by a new feature of iOS 14 called ITP that blocks cookies for external sites embedded in the app (the H5P content is played embedded in an iframe pointing to the Moodle website) unless the user enables a setting in the app to allow those cookies.&lt;br /&gt;
&lt;br /&gt;
The quick workaround is to enable the setting &amp;quot;Allow Cross-Website Tracking&amp;quot; available via the Settings app (look for the Moodle app, at the bottom) on your iPhone/iPad with iOS 14.&lt;br /&gt;
===I cannot reproduce audio that was recorded on browser on iOS devices (iPhones and iPads)===&lt;br /&gt;
This behaviour is related to this Moodle LMS bug: https://tracker.moodle.org/browse/MDL-80114&lt;br /&gt;
&lt;br /&gt;
=== I don&#039;t receive calendar notifications (reminders) when using Android 12 or above === &lt;br /&gt;
&lt;br /&gt;
In order to receive calendar notifications you need to allow alarms and reminders for the Moodle app. To do this:&lt;br /&gt;
* Open Android Settings and go to the Moodle app settings. Another way to reach these settings is by long-clicking the Moodle app icon and pressing &amp;quot;App info&amp;quot;.&lt;br /&gt;
* Make sure that Notifications are enabled.&lt;br /&gt;
* If you see a section called &amp;quot;Alarms &amp;amp; reminders&amp;quot;, make sure it is Allowed (this setting is disabled by default in Android 14+).&lt;br /&gt;
&lt;br /&gt;
==Teachers==&lt;br /&gt;
===How can I enable videos in my course to be downloaded?===&lt;br /&gt;
See the section &#039;Media download for offline usage&#039; in [[Creating Moodle-app-friendly courses]].&lt;br /&gt;
===Which course format is it best to use?===&lt;br /&gt;
Topics or weekly course format is best suited to mobile devices.&lt;br /&gt;
===How do I make YouTube links open automatically in the app?===&lt;br /&gt;
Add YouTube links as a [[URL resource]].&lt;br /&gt;
===Why can&#039;t my students see their courses?===&lt;br /&gt;
If you or an administrator have correctly enrolled them in a course, they can see it in their mobile app. If they are correctly enrolled but can still not see their course, ask them to check with your Moodle site administrator.&lt;br /&gt;
=== I can&#039;t mark assignments in the app===&lt;br /&gt;
If you are experiencing problems when grading, please review that you are using the correct decimal separators (if the app interface is in English, you must use a period).&lt;br /&gt;
===What communications tools can I use in the app to engage with my learners?===&lt;br /&gt;
See [[Mobile app notifications]]. Chat, forums and messaging are all supported by the app.&lt;br /&gt;
===My Vimeo videos are not playing in the app===&lt;br /&gt;
In older versions of Moodle (pre-Moodle 3.7), it may be necessary to activate the &amp;quot;Allow frame embedding&amp;quot; admin setting. However, for those using Moodle version 3.7 or later, it is important to check whether a Proxy/Firewall/Web Server security module is setting the X-Frame-Options header in your HTTP request responses. If this is the case, it is recommended to deactivate this feature as it may cause conflicts, as Moodle already sets this header by default. &lt;br /&gt;
&lt;br /&gt;
This setting is typically found in any of these configuration files .htaccess, httpd.conf or VirtualHost. To disable it, you can just use: Header always unset X-Frame-Options &lt;br /&gt;
&lt;br /&gt;
You may also use Bootstrap responsive classes: https://getbootstrap.com/docs/4.0/utilities/embed/, for example, &amp;lt;div class=&amp;quot;embed-responsive&amp;quot;&amp;gt;&lt;br /&gt;
For older versions, see this forum discussion with a workaround: https://moodle.org/mod/forum/discuss.php?d=327342&lt;br /&gt;
&lt;br /&gt;
If the issue is with vimeo videos on Moodle sites 3.10 or 3.11, please update the Moodle site to the latest version possible (at least 3.10.10 or 3.11.6). (See https://tracker.moodle.org/browse/MDL-74042)&lt;br /&gt;
===ReCaptcha doesn&#039;t work on my site===&lt;br /&gt;
In older versions of Moodle (pre-Moodle 3.7), it may be necessary to activate the &amp;quot;Allow frame embedding&amp;quot; admin setting. However, for those using Moodle version 3.7 or later, it is important to check whether a Proxy/Firewall/Web Server security module is setting the X-Frame-Options header in your HTTP request responses. If this is the case, it is recommended to deactivate this feature as it may cause conflicts, as Moodle already sets this header by default. &lt;br /&gt;
===H5P packages don&#039;t work on my site===&lt;br /&gt;
In older versions of Moodle (pre-Moodle 3.7), it may be necessary to activate the &amp;quot;Allow frame embedding&amp;quot; admin setting. However, for those using Moodle version 3.7 or later, it is important to check whether a Proxy/Firewall/Web Server security module is setting the X-Frame-Options header in your HTTP request responses. If this is the case, it is recommended to deactivate this feature as it may cause conflicts, as Moodle already sets this header by default. &lt;br /&gt;
&lt;br /&gt;
This setting is typically found in any of these configuration files .htaccess, httpd.conf or VirtualHost. To disable it, you can just use: Header always unset X-Frame-Options &lt;br /&gt;
&lt;br /&gt;
This can also happen when you are using the non-official H5P plugin (mod_hvp), in that case you will see the following message: This site is not configured properly for displaying mobile H5P content. Please contact a site administrator so they can apply the above suggested configuration changes.&lt;br /&gt;
&lt;br /&gt;
If you are using the non-official H5P plugin (mod_hvp) you can also try changing the plugin settings &amp;quot;Mobile rendering handler&amp;quot; and try the different options until you find the one that works for you. You might need to restart the app everytime you change the settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cookies issues&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If your site uses HTTPS please ensure that the &amp;quot;Secure cookies only&amp;quot; (cookiesecure) setting under Site administration &amp;gt; HTTP security is enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency errors&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the following error appears &amp;quot;Missing dependency H5P.Editor. something X required by H5P.Editor. something Y&amp;quot;. H5P packages need to include all the libraries (dependencies) they use so the package is self-contained. But sometimes packages might be missing at least one dependency.&lt;br /&gt;
&lt;br /&gt;
In order to fix this, you could do the following:&lt;br /&gt;
&lt;br /&gt;
Open Moodle’s Content Bank (from the link in the problematic H5P settings page) and upload your H5P package there, once uploaded, you will see the H5P package and an “Edit” button, click on that button so the editor opens, scroll down and click “Save”.&lt;br /&gt;
Now, you can replace the problematic H5P with this new one, for this, you can just include it from the Content bank by opening the activity settings page and the file picker.&lt;br /&gt;
&lt;br /&gt;
=== I use a Moodle plugin but the app says it is not supported ===&lt;br /&gt;
You should contact the plugin developer and point him to this documentation: https://docs.moodle.org/dev/Moodle_Mobile_Remote_addons where it is explained how to add support to plugins in the Mobile app.&lt;br /&gt;
&lt;br /&gt;
There is a list of Moodle plugins supported by the app here: https://moodle.org/plugins/browse.php?list=award&amp;amp;id=6&lt;br /&gt;
&lt;br /&gt;
To learn more about how the Moodle app works and how to make your plugins compatible, check out the intermediate-level Moodle Academy course [https://moodle.academy/enrol/index.php?id=71 Make Your Plugin Moodle App Compatible].&lt;br /&gt;
&lt;br /&gt;
=== I have problems playing SCORM packages ===&lt;br /&gt;
This might be caused because:&lt;br /&gt;
* The SCORM was added using an advanced option (remote imsmanifest.xml packages or file system repository unzipped SCORMS)&lt;br /&gt;
* The SCORM ZIP file was created using a tool that does not create standardised ZIP files (for example, zip files containing the inverted path separator &amp;quot;\&amp;quot; will not work on Android)&lt;br /&gt;
Please refer to [[Moodle app SCORM player]] for additional information.&lt;br /&gt;
=== My quizzes or lessons are not working offline ===&lt;br /&gt;
You need to edit the quiz or lesson activity settings and enable the &amp;quot;Allow lesson/quiz to be attempted offline using the mobile app&amp;quot; configuration option.&lt;br /&gt;
=== Maths notation is not displaying correctly in the app ===&lt;br /&gt;
If you are having issues with MathJax, please enable the [[TeX notation filter]] also.&lt;br /&gt;
&lt;br /&gt;
If you have both filters enabled, please leave MathJax above TeX so it is always processed before TeX.&lt;br /&gt;
&lt;br /&gt;
If the issue persists, we suggest disabling the &#039;Remove HTML tags from all activity names&#039; (&#039;&#039;formatstringstriptags&#039;&#039;) option in &#039;&#039;Site Administration&#039;&#039; &amp;gt; &#039;&#039;Appearance&#039;&#039; &amp;gt; &#039;&#039;HTML settings&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== How can I disable text selection / copy in the app? ===&lt;br /&gt;
You can create a remote theme and add some custom CSS rules to disable it, see https://docs.moodle.org/dev/Moodle_Mobile_Themes&lt;br /&gt;
=== My images, videos or audios stop working after the first time ===&lt;br /&gt;
Please make sure the URL you&#039;re using on the media file doesn&#039;t have any redirect (e.g. http to https), always try to use the final URL. There&#039;s a bug in the library we use to download those files, it doesn&#039;t work when downloading files with redirects. We have plans to remove that library from the app, but since then please always try to use URLs without redirects.&lt;br /&gt;
&lt;br /&gt;
=== Embedded YouTube videos are not working on iOS Moodle App (Error 153) ===&lt;br /&gt;
Unfortunately recent changes (October 2025) implemented by YouTube have disrupted the functionality of embedded YouTube videos in the Moodle app and other apps. This issue is beyond our control, and we have already reported this problem to all the third-parties that could provide a solution to help address this issue.&lt;br /&gt;
&lt;br /&gt;
We are developing a workaround that will be included in the next version of the app, 5.1.0. Please note that the 5.1.0 app is still under development, and it will take some time to complete the quality assurance process and make it available in the app stores. If you have an iOS device (iPhone or iPad) and would like to help us test the workaround and verify it solves the problem, we strongly encourage you to [https://moodle.org/mod/forum/discuss.php?d=470888#p1890316 join our Beta programme].&lt;br /&gt;
&lt;br /&gt;
Please visit https://moodle.org/mod/forum/discuss.php?d=470700#p1889793 for more information&lt;br /&gt;
&lt;br /&gt;
==Administrators==&lt;br /&gt;
=== What plans are available for the Moodle app? ===&lt;br /&gt;
There are two main plans available for the Moodle app: Free, and Premium, each offering different features. In addition to the plans, there is also a Branded Moodle App (BMA) option. The BMA is a custom-built app that is branded to your organization. Learn more in [[Moodle app plans]].&lt;br /&gt;
=== How can I have my site listed in the Moodle app site finder? ===&lt;br /&gt;
Please refer to our [[Moodle app guide for admins]] for instructions.&lt;br /&gt;
=== How can I debug errors in the app? ===&lt;br /&gt;
Go to the More tab and then to Settings &amp;gt; General. Enable &amp;quot;Display debug messages&amp;quot;. This will show an explanatory message when an error occurs, alternatively, you can do a full debugging via: https://docs.moodle.org/dev/Moodle_Mobile_debugging_WS_requests&lt;br /&gt;
&lt;br /&gt;
=== How can I disable features in the app? ===&lt;br /&gt;
Please go to &#039;&#039;Site administration &amp;gt; Mobile features &amp;gt; Disabled features&#039;&#039; and select all the features you want to disable.&lt;br /&gt;
&lt;br /&gt;
To select multiple features you will have to use Ctrl (Cmd in Mac) + Click&lt;br /&gt;
&lt;br /&gt;
=== How can I add custom menu items in the app? ===&lt;br /&gt;
You can add custom additional menu items in the &amp;quot;more&amp;quot; menu of the app, the one represented by three consecutive dots.&lt;br /&gt;
&lt;br /&gt;
Please go to &#039;&#039;Site administration &amp;gt; Mobile features &amp;gt; Custom menu items&#039;&#039; and follow the instructions in [[Moodle_app_guide_for_admins#Custom_menu_items|Moodle app guide for admins]] for the correct format to use.&lt;br /&gt;
&lt;br /&gt;
As a quick example:&lt;br /&gt;
  Academy information|https://yoursite.com/mod/page/view.php?id=X |app|en|home&lt;br /&gt;
&lt;br /&gt;
=== How can I customise the language strings in the app? ===&lt;br /&gt;
&lt;br /&gt;
Please go to &#039;&#039;Site administration &amp;gt; Mobile features &amp;gt; Custom language strings&#039;&#039; and follow the instructions in [[Moodle_app_guide_for_admins#Custom_language_strings|Moodle app guide for admins]] for the format to use.&lt;br /&gt;
&lt;br /&gt;
As a quick example:&lt;br /&gt;
 core.user.student|Learner|en&lt;br /&gt;
 core.user.student|Aprendiz|es&lt;br /&gt;
&lt;br /&gt;
=== I can connect with my iPhone (or iPad) but not with my Android phone ===&lt;br /&gt;
This usually happens when the site is using https and the certificate is not correctly configured or it is using an old protocol, please use these pages to check this certificate: https://www.sslshopper.com/ssl-checker.html, https://www.geocerts.com/ssl_checker, and https://www.ssllabs.com/ssltest/analyze.html&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The certificate of this site cannot be trusted by your device: TLS connection could not be established: javax.net.ssl.SSLHandshakeException&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This error could be caused because in any of the certification paths there is a certificate using SHA-1. Starting Android 10 this is not allowed, more information here: https://developer.android.com/privacy-and-security/security-ssl&lt;br /&gt;
&lt;br /&gt;
You could easily check the previous using https://www.ssllabs.com/ssltest/analyze.html and going to the Certification Paths -&amp;gt; Android section, if there is any mention to SHA-1 this could be the cause. You will need to upgrade your certificates to avoid using SHA-1.&lt;br /&gt;
&lt;br /&gt;
=== My certificate is fine but I still can&#039;t connect ===&lt;br /&gt;
This is usually a server configuration problem caused by any of the following server configuration issues:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Access to XMLHttpRequest at &#039;https://yoursite/webservice/rest/server.php?moodlewsrestformat=json&amp;lt;nowiki/&amp;gt;...&#039; from origin &#039;&amp;lt;nowiki&amp;gt;http://localhost&#039;&amp;lt;/nowiki&amp;gt; has been blocked by CORS policy: No &#039;Access-Control-Allow-Origin&#039; header is present on the requested resource.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is because a Proxy/Firewall/Web Server security module is removing automatically the Access-Control-Allow-Origin: * header that Moodle sets to allow Web Service requests. &lt;br /&gt;
&lt;br /&gt;
It is totally secure to remove that Proxy/Firewall/Web Server rule/configuration because that header is only set by Moodle when needed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;access-control-allow-origin cannot contain more than one origin&amp;quot;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
iOS and Android apps do not allow the following header to contain more than one item: &amp;quot;Access-Control-Allow-Origin&amp;quot;. For example, a header like this: Access-Control-Allow-Origin: *, https://mydomain.com will cause problems.&lt;br /&gt;
&lt;br /&gt;
This HTTP header is not valid, according to the specification you can only specify a domain or a &amp;quot;*&amp;quot;:&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin&lt;br /&gt;
&lt;br /&gt;
Please, review if you have a Proxy/Firewall/Web Server adding automatically values to that HTTP header.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Security rules are blocking requests using the Accept-Charset header&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some security rules, such as OWASP ModSecurity, are blocking requests with this header that is sent by the Moodle App. In future releases of the app, this problem will be fixed. But in the meantime, you should disable it. Find more about this in MOBILE-4342.&lt;br /&gt;
=== My certificate is fine but the Moodle app is detecting http instead of https ===&lt;br /&gt;
If the Moodle app is detecting http instead of https, please revise config.php (check &amp;quot;wwwroot&amp;quot; as well as &amp;quot;httpswwwroot&amp;quot;)&lt;br /&gt;
===After updating Moodle LMS to a recent version my users cannot login===&lt;br /&gt;
This only applies to sites that are configured to use log in via an embedded browser pointing to their Moodle site.&lt;br /&gt;
This behaviour could be related to this Moodle LMS issue: https://tracker.moodle.org/browse/MDL-81897.&lt;br /&gt;
There are several ways to fix this issue:&lt;br /&gt;
# Upgrade their Moodle site to any of the indicated version in the issue that will solve the problem&lt;br /&gt;
# Manually apply the patch here: https://github.com/jleyva/moodle/compare/462d5f04a8...MDL-81897-master&lt;br /&gt;
# Immediate workaround: Change the app authentication so it will launch in a separate browser, by going to Site admin &amp;gt; Mobile app authentication &amp;gt; Type of login (and select the option that mentions external/system browser), remember to Save Changes&lt;br /&gt;
We’d recommend doing 3) that will immediately address the issue that is affecting new logins.&lt;br /&gt;
===I can&#039;t get the app to work. What can I do?===&lt;br /&gt;
Assuming you have enabled mobile services on your site (please visit [[Moodle app guide for admins]]), please check:&lt;br /&gt;
# If your site uses an SSL certificate, it must be a trusted certificate, not self-signed. Please use these tools or a similar one to check that your certificate is valid: [https://www.sslshopper.com/ssl-checker.html SSL Checker], [https://www.geocerts.com/ssl_checker SSL Checker], and [https://www.ssllabs.com/ssltest/analyze.html SSL Server Test]. All the checks must be ok, including the &amp;quot;Certificate Chain Complete&amp;quot;. Otherwise the app might work on iOS but not on Android.&lt;br /&gt;
# Make sure that the &amp;quot;Access-Control-Allow-Origin&amp;quot; header only contains one item. For example, a header like this: Access-Control-Allow-Origin: *, &amp;lt;nowiki&amp;gt;https://mydomain.com&amp;lt;/nowiki&amp;gt; will cause problems.&lt;br /&gt;
# [[Debugging]] is disabled (in &#039;&#039;Site administration &amp;gt; Development &amp;gt; Debugging&#039;&#039;)&lt;br /&gt;
# The ADOdb debug option is disabled if you are using the external database auth or enrolment plugin (in &#039;&#039;Plugins &amp;gt; Authentication &amp;gt; External database&#039;&#039; and in &#039;&#039;Plugins &amp;gt; Enrolment &amp;gt; External database&#039;&#039;).&lt;br /&gt;
# SHA-1 https certificates are not supported anymore in Chrome, this means that the Android version of the app won&#039;t work for your site. If your site doesn&#039;t work in desktop Chrome or Chromium it won&#039;t work in the Android app. See https://blog.chromium.org/2014/09/gradually-sunsetting-sha-1.html for more information&lt;br /&gt;
# If you are using IIS check that Anonymous access is not disabled for the /webservice directory.&lt;br /&gt;
# If you are using a web application firewall like AWS WAF, StackPath, Barracuda, Cloudflare, Juniper, etc... try to temporary disable it to check if that&#039;s the cause. If so, you&#039;ll have to whitelist these endpoints: login/token.php, webservice/*, lib/ajax/*, media/player/vimeo/wsplayer.php and /tokenpluginfile.php&lt;br /&gt;
You can also add WAF rules to allow traffic by detecting the app user agent such as: (http.user_agent contains &amp;quot;MoodleMobile&amp;quot;)&lt;br /&gt;
If you still have a problem, please post in the [https://moodle.org/mod/forum/view.php?id=7798 Moodle for mobile forum].&lt;br /&gt;
&lt;br /&gt;
If the issue started after updating Moodle LMS please visit [https://docs.moodle.org/en/Moodle_app_FAQ#After_updating_Moodle_LMS_to_a_recent_version_my_users_cannot_login After updating Moodle LMS to a recent version my users cannot login].&lt;br /&gt;
&lt;br /&gt;
=== I cannot access with old users, but I can with recently created ones! ===&lt;br /&gt;
Please, do a &amp;quot;Purge all caches&amp;quot; via the Moodle administration settings, this will solve the problem.&lt;br /&gt;
===I can&#039;t view the courses tab as an administrator===&lt;br /&gt;
The Moodle app only displays courses you are enrolled in. If you want to view a course as an admin, you need to enrol in it.&lt;br /&gt;
===My Moodle site uses a SSO auth method (Shibboleth, Google OAuth, etc) and the app is not working===&lt;br /&gt;
See the section &#039;Mobile authentication&#039; in the [[Moodle app guide for admins]] for details of how to configure it.&lt;br /&gt;
&lt;br /&gt;
If configured the app is still not connecting: If your site uses an SSL certificate, it must be a trusted certificate, not self-signed. Please use this tool or a similar one to check that your certificate is fine: [https://www.geocerts.com/ssl_checker SSL Checker]. All the checks must be OK, including the &amp;quot;Certificate Chain Complete&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If your SSO method is unable to authenticate when using an &amp;quot;embedded browser&amp;quot; (it gives an authentication error), please check if it works with a &amp;quot;browser window&amp;quot;. If it does work with the browser window then it means your SSO is performing an HTTP redirect, and these kind of redirects aren&#039;t supported by the app (the request is redirected by the browser not passing the POST parameters). Unfortunately, this is something we cannot control in the Mobile app (it can&#039;t be handled via JavaScript). For further information, see http://stackoverflow.com/questions/228225/prevent-redirection-of-xmlhttprequest and http://stackoverflow.com/questions/4168784/ajax-redirection-handling&lt;br /&gt;
&lt;br /&gt;
There are only 2 possible solutions: set the authentication via a &amp;quot;browser window&amp;quot; instead of an embedded one (please notice this won&#039;t work in the Linux desktop app), or remove the redirect from the SSO auth method.&lt;br /&gt;
&lt;br /&gt;
===SSO is not working with my custom auth plugin===&lt;br /&gt;
SSO should work in any plugin if the plugin handles correctly the $SESSION-&amp;gt;wantsurl, this is the way SSO works when it is launched via the app:&lt;br /&gt;
* It launchs this URL https://yourmoodle/admin/tool/mobile/launch.php?service=local_mobile&amp;amp;passport=abc in the device browser &lt;br /&gt;
* If the user is not logged in, the browser will redirect the user to the login page&lt;br /&gt;
* If the auth plugin used implements correctly the handling of the wantsurl session var, once the user has logged in, the browser should redirect back to the https://yourmoodle/admin/tool/mobile/launch.php?service=local_mobile&amp;amp;passport=abc URL that will launch the mobile app via the custom URL protocol&lt;br /&gt;
Custom auth plugins may be failing in the last step,not redirecting back to tool/mobile, this will happen only if the plugin does not support correctly the $SESSION-&amp;gt;wantsurl.&lt;br /&gt;
&lt;br /&gt;
The SAML plugin works correctly but some modifications of that plugin may not work if important lines are changed.&lt;br /&gt;
===I am having problems requesting an airnotifier access key===&lt;br /&gt;
If you have registered your site but are still unable to request an access key, please register your site on the Moodle Apps Portal https://apps.moodle.com once your site is registered there, an Airnotifier access key will be automatically generated for you.&lt;br /&gt;
=== Push notifications are not working ===&lt;br /&gt;
Please check [[Mobile app notifications#Troubleshooting]]&lt;br /&gt;
=== How notifications icon badges are updated ===&lt;br /&gt;
&#039;&#039;&#039;Android&#039;&#039;&#039;: Not all Android devices support icon badges so in some cases badges will never display numbers, also, depending on the device only a badge indicating that there are new notifications will be displayed when receiving a Push notification when the app is not in the foreground.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;iOS&#039;&#039;&#039;: The icon badge counter is only updated when the app is open and it will reflect the number of notifications pending reading or the number of message senders that sent you a message you have not read yet&lt;br /&gt;
&lt;br /&gt;
In general, for iOS the icon badge displayed number should match the one displayed at the bottom of the app (or it should be the sum of the notifications and messages badges) and is not an indicator of the number of Push notifications the user has received, it acts as a reminder of pending notifications to be read that only gets updated when the user open the apps&lt;br /&gt;
&lt;br /&gt;
There is an open issue to improve the behaviour on iOS, please watch MDL-73707&lt;br /&gt;
=== I configured &#039;QR code access&#039; to automatic login, but the app still asks for credentials  ===&lt;br /&gt;
Automatic authentication only works for Premium sites. You can see the app plans [https://moodle.com/app/ in this site].&lt;br /&gt;
&lt;br /&gt;
If you&#039;re getting an error saying that the device you&#039;re using to connect isn&#039;t in the same network as the device that displays the QR code but both devices are connected to the same network, please check the section: [[#ipmismatch:_.27Client_IP_address_mismatch.27|ipmissmatch: &#039;Client IP address mismatch&#039;]].&lt;br /&gt;
&lt;br /&gt;
=== I can log in on my Moodle site but I see a blank page or the app styles broken ===&lt;br /&gt;
This is usually because your Moodle site has a customised CSS. &lt;br /&gt;
&lt;br /&gt;
Please try leaving empty CSS (&#039;&#039;mobilecssurl&#039;&#039;) on Site administration &amp;gt; Mobile app &amp;gt; Mobile appearance. If that works, please read [https://docs.moodle.org/dev/Moodle_App_Remote_Themes Moodle App Remote Themes] and create a new CSS file using the variables mentioned there&lt;br /&gt;
&lt;br /&gt;
===The Moodle app does not connect to MoodleBox (or other internal self-hosted systems)===&lt;br /&gt;
You will need to disable SSL to make the app works, please see this forum discussion for more information: https://moodle.org/mod/forum/discuss.php?d=424353#p1739474&lt;br /&gt;
===I think I found a bug with the app. Where can I report it?===&lt;br /&gt;
# Log in to the [https://tracker.moodle.org/browse/MOBILE Moodle Mobile tracker] (you&#039;ll need to [http://tracker.moodle.org/secure/Signup%21default.jspa create a tracker account] if you&#039;ve not done so previously)&lt;br /&gt;
# Check whether the issue has already been reported by doing a [https://tracker.moodle.org/issues/?jql=project%20%3D%20MOBILE search]&lt;br /&gt;
# If not, report the bug by clicking the &#039;Create Issue&#039; link at the top right of the page, selecting &#039;Moodle app&#039; as the project&lt;br /&gt;
# Add a detailed description providing as much information as possible (Moodle version, app version, device model and operating system, etc...), then click the Create button&lt;br /&gt;
===How can I get the app in my language?===&lt;br /&gt;
[[File:setting the app lang.png|thumb|100px|Setting your language]]&lt;br /&gt;
The Moodle app automatically detects your mobile&#039;s language and displays in the same language (if the translation exists). Otherwise, you can set the app language in App settings &amp;gt; General.&lt;br /&gt;
&lt;br /&gt;
See also a post explaining how multi-lang works in the Moodle app: [https://moodle.org/mod/forum/discuss.php?d=453445#p1825637 Re: Language selector missing in Moodle app]&lt;br /&gt;
&lt;br /&gt;
If the Moodle app is not yet available in your language, please contribute a translation! See [https://docs.moodle.org/dev/Translating%20Moodle%20Mobile Translating Moodle Mobile] for details of what to do.&lt;br /&gt;
&lt;br /&gt;
=== Changes made to a Moodle site URL can cause logged-in users’ data to fail when synchronising. ===&lt;br /&gt;
We recommend that administrators manually log out all users after a site rename. If your site URL changes and have site users that are using the mobile Moodle App we suggest the following:&lt;br /&gt;
* For users that have not yet logged in - we recommend sending them the new URL&lt;br /&gt;
*   For users already using the mobile Moodle App and potentially logged in request them to:&lt;br /&gt;
** log out of the mobile Moodle App,&lt;br /&gt;
** delete the old site, and&lt;br /&gt;
** log in using the new URL&lt;br /&gt;
Logged in Moodle users can continue working with the previous URL (with cached information) but they will not be able to synchronise the new information (therefore not receiving new information from their teachers, and teachers not receiving data or submissions from those students).&lt;br /&gt;
* To avoid the risk of data not synchronising, we recommend the site administrator logs out all app users, by manually deleting their tokens:&lt;br /&gt;
** Go to Site administration&lt;br /&gt;
** Click Server &lt;br /&gt;
** Click Web services &lt;br /&gt;
** Click Manage tokens &lt;br /&gt;
** Delete the tokens&lt;br /&gt;
Take into account that you still need to request your users to log in using the new URL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Embedded content is not working ===&lt;br /&gt;
&lt;br /&gt;
This could be caused because your site is using a Content-Security-Policy that is preventing the app from embedding content.&lt;br /&gt;
&lt;br /&gt;
You can easily detect this when an error like this is displayed (javascript console): Refused to load URL because it does not appear in the frame-ancestors directive of the Content Security Policy.&lt;br /&gt;
&lt;br /&gt;
If that&#039;s the case, you&#039;d need to add the following elements: http://localhost moodleappfs://localhost at the end of the &amp;quot;Content-Security-Policy&amp;quot; HTTP header:&lt;br /&gt;
&lt;br /&gt;
An example of a CSP allowing embedding Vimeo videos in the site and content in the app:&lt;br /&gt;
Content-Security-Policy: frame-ancestors &#039;self&#039; https://*.vimeocdn.com https://*.vimeows.com https://*.vimeo.com http://localhost moodleappfs://localhost ;&lt;br /&gt;
&lt;br /&gt;
Other type of embedded content that does not work is content hosted by Microsoft tools that require session or any type of authentication, such as SharePoint content.&lt;br /&gt;
&lt;br /&gt;
=== Some activities are displayed incorrectly (blank, just a vertical line, ..) on the app ===&lt;br /&gt;
Please visit the forum post [[https://moodle.org/mod/forum/discuss.php?d=461909#p1854918| Some lesson activities do not display at all]].&lt;br /&gt;
&lt;br /&gt;
=== Does the mobile app work on HarmonyOS devices such as Huawei? ===&lt;br /&gt;
&lt;br /&gt;
The Moodle mobile app only officially supports Android and iOS operating systems; we cannot guarantee it will work on derived distributions.&lt;br /&gt;
&lt;br /&gt;
What we can guarantee is that Push Notifications won&#039;t work as they depend on Google Play services (Firebase Cloud Messaging)&lt;br /&gt;
&lt;br /&gt;
==Error messages==&lt;br /&gt;
=== &#039;Coding error: version.php file is missing for the component&#039; ===&lt;br /&gt;
This error message indicates that that plugin is not correctly installed (or uninstalled) on the Moodle site you use (see [[Installing plugins]]). Please review the mod/certificate folder to check if the version.php file is missing (or has incorrect permissions) as well as purge cache too.&lt;br /&gt;
=== &#039;Can not find data record in database table external_functions&#039; ===&lt;br /&gt;
This error usually happens due to a bad configuration or setting value in your Moodle site, please check:&lt;br /&gt;
# The user quota global setting should be an integer. For more details, see the discussion [https://moodle.org/mod/forum/discuss.php?d=320873 How to enable Moodle Mobile App for all accounts].&lt;br /&gt;
# The &#039;&#039;usermaxuploadfilesize&#039;&#039; should be an integer, please try to decrease the size. It can be configured in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; Site Policies &amp;gt; Maximum uploaded file size&#039;&#039;. The default value (Site upload limit) depends on the PHP configuration, you might have to change the value of &#039;&#039;upload_max_filesize&#039;&#039; and &#039;&#039;post_max_size&#039;&#039; in your &#039;&#039;php.ini&#039;&#039; file.&lt;br /&gt;
# The user &amp;quot;lang&amp;quot; field in the database is set to a correct value and existing language installed in the site. Some times the lang field is set via external systems to incorrect values or pointing to a language pack that was uninstalled. Please, note that to fix this you need direct access to the database and your &#039;user&#039; and &#039;course&#039; table.&lt;br /&gt;
===&#039;Cannot connect: Verify that you have typed correctly the URL and that your site uses Moodle 3.5 or later&#039;===&lt;br /&gt;
Take into account that the app will only connect to Moodle LMS sites version 3.5 onward.&lt;br /&gt;
Please also check:&lt;br /&gt;
# Mobile services are enabled for the site.&lt;br /&gt;
# The user is entering the correct URL for the site (see FAQ above)&lt;br /&gt;
# For https sites, the certificate is valid (see FAQ above)&lt;br /&gt;
===&#039;Invalid Moodle site version. The Moodle app only supports Moodle systems 3.5 onwards&#039;===&lt;br /&gt;
The app will only connect to Moodle LMS sites version 3.5 onward (see [https://docs.moodle.org/35/en/Upgrading Upgrade to 3.5] as well as [[Upgrade overview]]).&lt;br /&gt;
===&#039;We lost connection; you need to reconnect. Your token is now invalid.&#039; on my custom version of the Moodle app ===&lt;br /&gt;
Please check:&lt;br /&gt;
# You have followed all the steps listed in [https://docs.moodle.org/dev/Moodle%20Mobile%20Developing%20a%20plugin%20tutorial Moodle Mobile Developing a plugin tutorial]&lt;br /&gt;
# You have enabled the [[Capabilities/moodle/webservice:createtoken|moodle/webservice:createtoken]] for the authenticated user&lt;br /&gt;
===&#039;No permission to create web service token for the service local_mobile&#039; when attempting to log in (any user that it is not an admin)===&lt;br /&gt;
Please check you have enabled the moodle/webservice:createtoken for the authenticated user or any global role you want to allow to use the mobile app&lt;br /&gt;
===&#039;No permission to create web service token for the service local_mobile&#039; when attempting to log in as an admin===&lt;br /&gt;
You need to create a token for the admin account (only) as follows:&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Web services &amp;gt; Manage tokens&#039;&#039;&lt;br /&gt;
# Click Add&lt;br /&gt;
# Enter the admin username and select &#039;Moodle app additional features service&#039; (i.e. do NOT leave it as &#039;Moodle app web service&#039;)&lt;br /&gt;
# Click the &#039;Save changes&#039; button.&lt;br /&gt;
===&#039;Invalid response value detected&#039; when accessing the site ===&lt;br /&gt;
The user quota global setting should be an integer. For more details, see the discussion [https://moodle.org/mod/forum/discuss.php?d=320873 How to enable Moodle Mobile App for all accounts].&lt;br /&gt;
=== &#039; Invalid response value detected: Invalid external api response: the value is &amp;quot;&amp;quot;, the server was expecting &amp;quot;raw&amp;quot; type&amp;quot; ===&lt;br /&gt;
This usually happens when there is a field with value NULL in a table in the database that should not be there. This may happen if your Moodle has been upgraded over many years and the database schema is broken.&lt;br /&gt;
&lt;br /&gt;
To fix it, you can do the following: &lt;br /&gt;
* Detect the field that is causing the problem (it should be indicated before the error message)&lt;br /&gt;
* Fix the field, for example, for the password field in the lesson table: UPDATE mdl_lesson SET password = &#039;&#039; WHERE password IS NULL (remember that your table prefix can be different than mdl_)&lt;br /&gt;
===&#039;Invalid response value detected&#039; when accessing My Courses or Course Overview ===&lt;br /&gt;
This usually happens when a course uses a language that isn&#039;t installed in the site. Please make sure that all courses use valid languages. This can be easily checked in the database, table &amp;quot;course&amp;quot;, there is a column named &amp;quot;lang&amp;quot;.&lt;br /&gt;
===&#039;A required parameter (username) was missing&#039;===&lt;br /&gt;
This may happen if your site implements HTTP redirects; the request is redirected by the browser not passing the POST parameters.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, this is something we cannot control in the Mobile app (it can&#039;t be handled via JavaScript). For further information, see http://stackoverflow.com/questions/228225/prevent-redirection-of-xmlhttprequest and http://stackoverflow.com/questions/4168784/ajax-redirection-handling&lt;br /&gt;
&lt;br /&gt;
The solution is to change the HTTP redirect and use an HTML page with a meta tag or JavaScript redirect.&lt;br /&gt;
===&#039;Cannot get course contents&#039;===&lt;br /&gt;
This usually happens when the course is using a course format plugin that was uninstalled from the server or that was not properly installed.&lt;br /&gt;
&lt;br /&gt;
Please, reinstall again the course format plugin.&lt;br /&gt;
===&#039;Access control exception&#039; or &#039;Your authentication token is invalid or has expired&#039;===&lt;br /&gt;
Please double-check that &#039;Enable web services for mobile devices&#039; (&#039;&#039;enablemobilewebservice&#039;&#039;) is actually enabled. (It might be unabled if for example you have reseted some roles.)&lt;br /&gt;
&lt;br /&gt;
If this error appears as soon as you enter the username and password for a new site, then it probably means that the token expiration time is badly configured. This is how to fix it:&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Security &amp;gt; Site security settings&#039;&#039;.&lt;br /&gt;
# Find the setting named &#039;&#039;User created token duration&#039;&#039;.&lt;br /&gt;
# If the value is set to 0 or it&#039;s too low, please set it back to a valid value (the default value is 12 weeks).&lt;br /&gt;
# Click the &#039;Save changes&#039; button.&lt;br /&gt;
&lt;br /&gt;
===ipmismatch: &#039;Client IP address mismatch&#039;===&lt;br /&gt;
This error can appear when a user opens your site in a browser while using the app. This happens if your site is behind a proxy and you&#039;re using one of these Moodle versions o higher: 3.5.11, 3.6.9, 3.7.5, 3.8.2, 3.9.0.&lt;br /&gt;
&lt;br /&gt;
To fix it:&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Administration &amp;gt; Server &amp;gt; HTTP&#039;&#039;.&lt;br /&gt;
# Find the setting named &#039;&#039;Ignore reverse proxies&#039;&#039; (reverseproxyignore).&lt;br /&gt;
# Enter the IP of your proxy (or range of IPs).&lt;br /&gt;
# Click the &#039;Save changes&#039; button.&lt;br /&gt;
If you are still experiencing issues please try to change this setting &amp;quot;getremoteaddrconf&amp;quot; (Logged IP address source) to the different existing values.&lt;br /&gt;
&lt;br /&gt;
Finally, it is possible to disable the IP restriction checks for functionality such as the QR login, to do that, go to Site administration &amp;gt; Mobile app &amp;gt; Mobile app authentication, and disable the &amp;quot;QR authentication same IP check&amp;quot; setting.&lt;br /&gt;
=== &#039;The param &amp;quot;includestealthmodules&amp;quot; is invalid&#039; ===&lt;br /&gt;
Please contact your learning organisation so they upgrade to at least Moodle 3.5.3 (see [https://docs.moodle.org/35/en/Upgrading Upgrade to 3.5] as well as [[Upgrade overview]]) or they manually apply the patch listed here [[MDL-63542]].&lt;br /&gt;
&lt;br /&gt;
==Older versions of the Moodle app==&lt;br /&gt;
We always recommend using the last version of the Moodle App but some times users are still using older versions this is the reason we are keeping this list:&lt;br /&gt;
&lt;br /&gt;
=== Some users are asked to reauthenticate too often when they browse the site (Moodle App &amp;lt;3.9.3) ===&lt;br /&gt;
This can happen if the app is sending too many variables to a WebService, e.g. because a course has a large number of sections and/or activities. This error was fixed in the 3.9.3 version of the app, but if you are using an older version of the app you can increase the value of &#039;&#039;max_input_vars&#039;&#039; in &#039;&#039;php.ini&#039;&#039; to fix it in your server.&lt;br /&gt;
&lt;br /&gt;
=== After upgrading to 3.9.5 some of my plugins have stopped working ===&lt;br /&gt;
The Moodle App 3.9.5 version came with some breaking changes for plugins, most of the existing plugins have been updated to support the new changes.&lt;br /&gt;
Please check the following list of plugins that should work for 3.9.5 once you have upgraded to the latest version indicated in the document: https://docs.google.com/spreadsheets/d/1E9PqcUBpp9SAfQc_zJtX5tf9GeS3UN76A85IrrB4UDw/edit#gid=0&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7798 Moodle for mobile forum] on moodle.org.&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[de:Moodle Mobile - FAQ]]&lt;br /&gt;
[[ca:Moodle Mobile FAQ]]&lt;br /&gt;
[[es:Moodle app FAQ]]&lt;br /&gt;
[[fr:Moodle pour les mobiles]]&lt;br /&gt;
[[ja:バイルMoodle FAQ]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_plans&amp;diff=154592</id>
		<title>Moodle app plans</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_plans&amp;diff=154592"/>
		<updated>2025-11-06T07:51:09Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Additional features available */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
Our mobile application is absolutely free for end users, including students and teachers. They have unrestricted access to all the features they need to access courses, at no cost.&lt;br /&gt;
&lt;br /&gt;
However, organisations can [https://apps.moodle.com/local/apps/signup_site.php?plan=premium&amp;amp;origin=moodledocs subscribe to our Premium plan, or purchase a Branded Moodle App (BMA)]. These options provide additional, exclusive features to enhance their Moodle experience. &lt;br /&gt;
&lt;br /&gt;
By subscribing to a plan or purchasing a BMA, organisations also contribute to Moodle&#039;s sustainability.&lt;br /&gt;
== Free plan ==&lt;br /&gt;
The free plan is enabled by default for all Moodle Sites. It provides the most common functionality for students. Certain advanced functionalities are restricted, but organisations can enable them by upgrading to a Premium Plan.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What’s included in the Free plan?&#039;&#039;&#039;&lt;br /&gt;
* Compatible with most Moodle sites, except sites hosted by non-official partners or service providers.&lt;br /&gt;
* Access to all course content and most of the features for students available in LMS.&lt;br /&gt;
* 50 active devices for push notifications.&lt;br /&gt;
* Access to 2 offline courses per device per site.&lt;br /&gt;
* Customisable app features via Moodle site administration:&lt;br /&gt;
** 1 custom menu item.&lt;br /&gt;
** 1 disabled feature.&lt;br /&gt;
** 10 custom language strings.&lt;br /&gt;
== Premium plan ==&lt;br /&gt;
The Premium plan includes all the features of the free plan, plus basic branding customisation, Multimedia Push notifications, the possibility of finding your site by name, QR and Biometric login, Matomo analytics support options and unlimited devices for push notifications and offline courses.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What’s included in the Premium plan?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Compatible with most Moodle sites. &lt;br /&gt;
* [[#Basic_branding|Basic branding]].&lt;br /&gt;
* [[#Multimedia_Push_notifications|Multimedia Push notifications (Android only)]].&lt;br /&gt;
* [[#Custom_site_listing_in_search_results|Custom site listing in search results]].&lt;br /&gt;
* [[#QR_login|QR login]].&lt;br /&gt;
* [[#Biometric_login|Biometric login]].&lt;br /&gt;
* [[#Integration_with_Matomo_Analytics|Integration with Matomo Analytics]].&lt;br /&gt;
* [[#Active_devices_for_Push_notifications|Unlimited devices for push notifications]].&lt;br /&gt;
* [[#Offline_courses_per_device_per_site|Unlimited offline courses]].&lt;br /&gt;
* [[#Customisable_app_features_via_Moodle_LMS_site_administration|No limits to the app features that can be configured via Moodle LMS site administration]].&lt;br /&gt;
&lt;br /&gt;
== Branded Moodle App (BMA) ==&lt;br /&gt;
A Branded Moodle App includes all features from Premium plans, and provides organisations with their own app on Google Play and App store. The app name, logo and branding can be customised to match the organisation&#039;s identity, creating a trusted and consistent learning experience. &lt;br /&gt;
&lt;br /&gt;
=== Additional features available ===&lt;br /&gt;
* [[#Google_Analytics_for_Firebase_(BMA)|Your BMA can seamlessly connect with Google Analytics for Firebase]], providing you with valuable insights into user behaviour, engagement, and app usage patterns.&lt;br /&gt;
* [[#Custom_notifications_(BMA)|Custom notifications]] 				&lt;br /&gt;
* [[#Custom_download_page_(BMA)|Custom download page]]&lt;br /&gt;
&lt;br /&gt;
For more information, see bellow a detailed description of the features and visit the [https://moodle.com/branded-app/ Branded Moodle App page at moodle.com].&lt;br /&gt;
&lt;br /&gt;
For more information about the different subscription options visit the [https://apps.moodle.com Moodle Apps Portal].&lt;br /&gt;
&lt;br /&gt;
== Moodle App features ==&lt;br /&gt;
The following features are available to organisations depending on the Moodle App plan they subscribe to.&lt;br /&gt;
&lt;br /&gt;
=== Active devices for Push notifications ===&lt;br /&gt;
Calculated monthly, this is the number of unique user devices actively receiving push notifications from a Moodle site. &lt;br /&gt;
&lt;br /&gt;
For example, for a site with 200 users enrolled and using the app with one device configured to receive push notifications, the potential number of active devices per month will be 200.&lt;br /&gt;
&lt;br /&gt;
==== Multimedia Push notifications ====&lt;br /&gt;
For Android only, the Push notifications received by your users can include images. Similar messages will be grouped, for example, when receiving private messaging notifications. Requires activation via the Moodle Apps Portal.&lt;br /&gt;
=== Custom site listing in search results ===&lt;br /&gt;
Enable users to find your site by name when logging in to the app, removing the need to type the full URL of your site. You can configure how the results are displayed in the “Site finder” in the Moodle Apps Portal, including adding an image for your site and additional information.&lt;br /&gt;
=== QR login ===&lt;br /&gt;
Your users will be able to log in to the app by scanning a QR login, available on their Moodle site profile. Requires activation in your Moodle site&#039;s administration settings, and is compatible with Moodle LMS 3.9 and later.&lt;br /&gt;
=== Biometric login ===&lt;br /&gt;
Streamline login for your users with fingerprint or Face ID authentication. For enhanced security, your users will be prompted to perform a regular standard login at intervals determined by your Moodle site&#039;s security settings. Requires activation via the Moodle Apps Portal, and individual user setup.&lt;br /&gt;
=== Offline courses per device per site ===&lt;br /&gt;
This feature allows users to download entire courses for offline access. Depending on the app plan, there will be varying limits on the number of courses users can download.&lt;br /&gt;
&lt;br /&gt;
The amount of individual activities and resources that users are allowed to download is unlimited. &lt;br /&gt;
=== Basic branding ===&lt;br /&gt;
Using an online tool in the Moodle Apps Portal, organisations can customise the colour palette of their site in the Moodle App (including the login screen). Requires activation via the Moodle Apps Portal.&lt;br /&gt;
=== Integration with Matomo Analytics ===&lt;br /&gt;
Organisations with Matomo Analytics integrated into their Moodle site can extend tracking capabilities to the app. To use this integration, you need to have your own instance of Matomo.&lt;br /&gt;
&lt;br /&gt;
Requires activation via the Moodle Apps Portal. For details, see the [[Moodle app guide for admins]].&lt;br /&gt;
=== Customisable app features via Moodle LMS site administration ===&lt;br /&gt;
Certain app functionality can be configured via the Moodle site. App configuration options vary depending on your subscription plan.&lt;br /&gt;
* Custom menu items: you can add your own links within the Moodle app menu. Your custom links will be available via the &#039;more&#039; menu (the three-dot ⋯ menu at the bottom of the app).&lt;br /&gt;
* Disabled features: you can select which Moodle features, such as blocks or modules, won’t be available on your app.&lt;br /&gt;
* Custom language strings: you can customise the app&#039;s language strings. &lt;br /&gt;
For more details, visit [[Moodle app guide for admins]].&lt;br /&gt;
=== Google Analytics for Firebase (BMA) ===&lt;br /&gt;
Google Analytics for Firebase is a free tool that provides valuable insights and data about how users interact with mobile apps. For compliance with GDPR, users will be able to disable it at any time.&lt;br /&gt;
&lt;br /&gt;
=== Custom notifications (BMA) ===&lt;br /&gt;
[[File:Captura de pantalla 2023-12-01 a las 11.13.19.png|thumb|200px]]&lt;br /&gt;
A tool available at the &amp;quot;Apps portal&amp;quot; will allow you to send customised Push notifications to all the active users of your Branded Moodle App.&lt;br /&gt;
&lt;br /&gt;
You will be able to provide a title, message and additional information in HTML format for your notifications. For Android users, it will be also possible to include a descriptive icon and image.&lt;br /&gt;
&lt;br /&gt;
=== Custom download page (BMA) ===&lt;br /&gt;
[[File:BMA Custom Download Page.png|thumb|200px]]&lt;br /&gt;
A tool available at the &amp;quot;Apps portal&amp;quot; will allow you to create a custom download page for your app by just providing the &amp;quot;App name&amp;quot; you want to display, a description and a descriptive image. &lt;br /&gt;
&lt;br /&gt;
[https://apps.moodle.com/local/apps/download.php?id=com.moodle.bcnacademy See the example here].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://support.moodle.com/support/solutions/folders/80000686596 FAQ for plans]&lt;br /&gt;
* [https://support.moodle.com/support/solutions/folders/80000686597 FAQ for BMA]&lt;br /&gt;
* [[Moodle app guide for admins]]&lt;br /&gt;
&lt;br /&gt;
[[es:Planes de Moodle app]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_plans&amp;diff=154591</id>
		<title>Moodle app plans</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_plans&amp;diff=154591"/>
		<updated>2025-11-06T07:50:35Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Branded Moodle App (BMA) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
Our mobile application is absolutely free for end users, including students and teachers. They have unrestricted access to all the features they need to access courses, at no cost.&lt;br /&gt;
&lt;br /&gt;
However, organisations can [https://apps.moodle.com/local/apps/signup_site.php?plan=premium&amp;amp;origin=moodledocs subscribe to our Premium plan, or purchase a Branded Moodle App (BMA)]. These options provide additional, exclusive features to enhance their Moodle experience. &lt;br /&gt;
&lt;br /&gt;
By subscribing to a plan or purchasing a BMA, organisations also contribute to Moodle&#039;s sustainability.&lt;br /&gt;
== Free plan ==&lt;br /&gt;
The free plan is enabled by default for all Moodle Sites. It provides the most common functionality for students. Certain advanced functionalities are restricted, but organisations can enable them by upgrading to a Premium Plan.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What’s included in the Free plan?&#039;&#039;&#039;&lt;br /&gt;
* Compatible with most Moodle sites, except sites hosted by non-official partners or service providers.&lt;br /&gt;
* Access to all course content and most of the features for students available in LMS.&lt;br /&gt;
* 50 active devices for push notifications.&lt;br /&gt;
* Access to 2 offline courses per device per site.&lt;br /&gt;
* Customisable app features via Moodle site administration:&lt;br /&gt;
** 1 custom menu item.&lt;br /&gt;
** 1 disabled feature.&lt;br /&gt;
** 10 custom language strings.&lt;br /&gt;
== Premium plan ==&lt;br /&gt;
The Premium plan includes all the features of the free plan, plus basic branding customisation, Multimedia Push notifications, the possibility of finding your site by name, QR and Biometric login, Matomo analytics support options and unlimited devices for push notifications and offline courses.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What’s included in the Premium plan?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Compatible with most Moodle sites. &lt;br /&gt;
* [[#Basic_branding|Basic branding]].&lt;br /&gt;
* [[#Multimedia_Push_notifications|Multimedia Push notifications (Android only)]].&lt;br /&gt;
* [[#Custom_site_listing_in_search_results|Custom site listing in search results]].&lt;br /&gt;
* [[#QR_login|QR login]].&lt;br /&gt;
* [[#Biometric_login|Biometric login]].&lt;br /&gt;
* [[#Integration_with_Matomo_Analytics|Integration with Matomo Analytics]].&lt;br /&gt;
* [[#Active_devices_for_Push_notifications|Unlimited devices for push notifications]].&lt;br /&gt;
* [[#Offline_courses_per_device_per_site|Unlimited offline courses]].&lt;br /&gt;
* [[#Customisable_app_features_via_Moodle_LMS_site_administration|No limits to the app features that can be configured via Moodle LMS site administration]].&lt;br /&gt;
&lt;br /&gt;
== Branded Moodle App (BMA) ==&lt;br /&gt;
A Branded Moodle App includes all features from Premium plans, and provides organisations with their own app on Google Play and App store. The app name, logo and branding can be customised to match the organisation&#039;s identity, creating a trusted and consistent learning experience. &lt;br /&gt;
&lt;br /&gt;
=== Additional features available ===&lt;br /&gt;
* [[#Google_Analytics_for_Firebase_(BMA)|Your BMA can seamlessly connect with Google Analytics for Firebase, providing you with valuable insights into user behaviour, engagement, and app usage patterns.]]&lt;br /&gt;
* [[#Custom_notifications_(BMA)|Custom notifications]] 				&lt;br /&gt;
* [[#Custom_download_page_(BMA)|Custom download page]]&lt;br /&gt;
&lt;br /&gt;
For more information, see bellow a detailed description of the features and visit the [https://moodle.com/branded-app/ Branded Moodle App page at moodle.com].&lt;br /&gt;
&lt;br /&gt;
For more information about the different subscription options visit the [https://apps.moodle.com Moodle Apps Portal].&lt;br /&gt;
&lt;br /&gt;
== Moodle App features ==&lt;br /&gt;
The following features are available to organisations depending on the Moodle App plan they subscribe to.&lt;br /&gt;
&lt;br /&gt;
=== Active devices for Push notifications ===&lt;br /&gt;
Calculated monthly, this is the number of unique user devices actively receiving push notifications from a Moodle site. &lt;br /&gt;
&lt;br /&gt;
For example, for a site with 200 users enrolled and using the app with one device configured to receive push notifications, the potential number of active devices per month will be 200.&lt;br /&gt;
&lt;br /&gt;
==== Multimedia Push notifications ====&lt;br /&gt;
For Android only, the Push notifications received by your users can include images. Similar messages will be grouped, for example, when receiving private messaging notifications. Requires activation via the Moodle Apps Portal.&lt;br /&gt;
=== Custom site listing in search results ===&lt;br /&gt;
Enable users to find your site by name when logging in to the app, removing the need to type the full URL of your site. You can configure how the results are displayed in the “Site finder” in the Moodle Apps Portal, including adding an image for your site and additional information.&lt;br /&gt;
=== QR login ===&lt;br /&gt;
Your users will be able to log in to the app by scanning a QR login, available on their Moodle site profile. Requires activation in your Moodle site&#039;s administration settings, and is compatible with Moodle LMS 3.9 and later.&lt;br /&gt;
=== Biometric login ===&lt;br /&gt;
Streamline login for your users with fingerprint or Face ID authentication. For enhanced security, your users will be prompted to perform a regular standard login at intervals determined by your Moodle site&#039;s security settings. Requires activation via the Moodle Apps Portal, and individual user setup.&lt;br /&gt;
=== Offline courses per device per site ===&lt;br /&gt;
This feature allows users to download entire courses for offline access. Depending on the app plan, there will be varying limits on the number of courses users can download.&lt;br /&gt;
&lt;br /&gt;
The amount of individual activities and resources that users are allowed to download is unlimited. &lt;br /&gt;
=== Basic branding ===&lt;br /&gt;
Using an online tool in the Moodle Apps Portal, organisations can customise the colour palette of their site in the Moodle App (including the login screen). Requires activation via the Moodle Apps Portal.&lt;br /&gt;
=== Integration with Matomo Analytics ===&lt;br /&gt;
Organisations with Matomo Analytics integrated into their Moodle site can extend tracking capabilities to the app. To use this integration, you need to have your own instance of Matomo.&lt;br /&gt;
&lt;br /&gt;
Requires activation via the Moodle Apps Portal. For details, see the [[Moodle app guide for admins]].&lt;br /&gt;
=== Customisable app features via Moodle LMS site administration ===&lt;br /&gt;
Certain app functionality can be configured via the Moodle site. App configuration options vary depending on your subscription plan.&lt;br /&gt;
* Custom menu items: you can add your own links within the Moodle app menu. Your custom links will be available via the &#039;more&#039; menu (the three-dot ⋯ menu at the bottom of the app).&lt;br /&gt;
* Disabled features: you can select which Moodle features, such as blocks or modules, won’t be available on your app.&lt;br /&gt;
* Custom language strings: you can customise the app&#039;s language strings. &lt;br /&gt;
For more details, visit [[Moodle app guide for admins]].&lt;br /&gt;
=== Google Analytics for Firebase (BMA) ===&lt;br /&gt;
Google Analytics for Firebase is a free tool that provides valuable insights and data about how users interact with mobile apps. For compliance with GDPR, users will be able to disable it at any time.&lt;br /&gt;
&lt;br /&gt;
=== Custom notifications (BMA) ===&lt;br /&gt;
[[File:Captura de pantalla 2023-12-01 a las 11.13.19.png|thumb|200px]]&lt;br /&gt;
A tool available at the &amp;quot;Apps portal&amp;quot; will allow you to send customised Push notifications to all the active users of your Branded Moodle App.&lt;br /&gt;
&lt;br /&gt;
You will be able to provide a title, message and additional information in HTML format for your notifications. For Android users, it will be also possible to include a descriptive icon and image.&lt;br /&gt;
&lt;br /&gt;
=== Custom download page (BMA) ===&lt;br /&gt;
[[File:BMA Custom Download Page.png|thumb|200px]]&lt;br /&gt;
A tool available at the &amp;quot;Apps portal&amp;quot; will allow you to create a custom download page for your app by just providing the &amp;quot;App name&amp;quot; you want to display, a description and a descriptive image. &lt;br /&gt;
&lt;br /&gt;
[https://apps.moodle.com/local/apps/download.php?id=com.moodle.bcnacademy See the example here].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://support.moodle.com/support/solutions/folders/80000686596 FAQ for plans]&lt;br /&gt;
* [https://support.moodle.com/support/solutions/folders/80000686597 FAQ for BMA]&lt;br /&gt;
* [[Moodle app guide for admins]]&lt;br /&gt;
&lt;br /&gt;
[[es:Planes de Moodle app]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_plans&amp;diff=154590</id>
		<title>Moodle app plans</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_plans&amp;diff=154590"/>
		<updated>2025-11-06T07:48:41Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Branded Moodle App (BMA) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
Our mobile application is absolutely free for end users, including students and teachers. They have unrestricted access to all the features they need to access courses, at no cost.&lt;br /&gt;
&lt;br /&gt;
However, organisations can [https://apps.moodle.com/local/apps/signup_site.php?plan=premium&amp;amp;origin=moodledocs subscribe to our Premium plan, or purchase a Branded Moodle App (BMA)]. These options provide additional, exclusive features to enhance their Moodle experience. &lt;br /&gt;
&lt;br /&gt;
By subscribing to a plan or purchasing a BMA, organisations also contribute to Moodle&#039;s sustainability.&lt;br /&gt;
== Free plan ==&lt;br /&gt;
The free plan is enabled by default for all Moodle Sites. It provides the most common functionality for students. Certain advanced functionalities are restricted, but organisations can enable them by upgrading to a Premium Plan.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What’s included in the Free plan?&#039;&#039;&#039;&lt;br /&gt;
* Compatible with most Moodle sites, except sites hosted by non-official partners or service providers.&lt;br /&gt;
* Access to all course content and most of the features for students available in LMS.&lt;br /&gt;
* 50 active devices for push notifications.&lt;br /&gt;
* Access to 2 offline courses per device per site.&lt;br /&gt;
* Customisable app features via Moodle site administration:&lt;br /&gt;
** 1 custom menu item.&lt;br /&gt;
** 1 disabled feature.&lt;br /&gt;
** 10 custom language strings.&lt;br /&gt;
== Premium plan ==&lt;br /&gt;
The Premium plan includes all the features of the free plan, plus basic branding customisation, Multimedia Push notifications, the possibility of finding your site by name, QR and Biometric login, Matomo analytics support options and unlimited devices for push notifications and offline courses.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What’s included in the Premium plan?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Compatible with most Moodle sites. &lt;br /&gt;
* [[#Basic_branding|Basic branding]].&lt;br /&gt;
* [[#Multimedia_Push_notifications|Multimedia Push notifications (Android only)]].&lt;br /&gt;
* [[#Custom_site_listing_in_search_results|Custom site listing in search results]].&lt;br /&gt;
* [[#QR_login|QR login]].&lt;br /&gt;
* [[#Biometric_login|Biometric login]].&lt;br /&gt;
* [[#Integration_with_Matomo_Analytics|Integration with Matomo Analytics]].&lt;br /&gt;
* [[#Active_devices_for_Push_notifications|Unlimited devices for push notifications]].&lt;br /&gt;
* [[#Offline_courses_per_device_per_site|Unlimited offline courses]].&lt;br /&gt;
* [[#Customisable_app_features_via_Moodle_LMS_site_administration|No limits to the app features that can be configured via Moodle LMS site administration]].&lt;br /&gt;
&lt;br /&gt;
== Branded Moodle App (BMA) ==&lt;br /&gt;
A Branded Moodle App includes all features from Premium plans, and provides organisations with their own app on Google Play and App store. The app name, logo and branding can be customised to match the organisation&#039;s identity, creating a trusted and consistent learning experience. &lt;br /&gt;
&lt;br /&gt;
=== Additional features available ===&lt;br /&gt;
* Your BMA can seamlessly connect with Google Analytics for Firebase, providing you with valuable insights into user behaviour, engagement, and app usage patterns.&lt;br /&gt;
* Custom notifications 				&lt;br /&gt;
* Custom download page&lt;br /&gt;
&lt;br /&gt;
For more information, see bellow a detailed description of the features and visit the [https://moodle.com/branded-app/ Branded Moodle App page at moodle.com].&lt;br /&gt;
&lt;br /&gt;
For more information about the different subscription options visit the [https://apps.moodle.com Moodle Apps Portal].&lt;br /&gt;
&lt;br /&gt;
== Moodle App features ==&lt;br /&gt;
The following features are available to organisations depending on the Moodle App plan they subscribe to.&lt;br /&gt;
&lt;br /&gt;
=== Active devices for Push notifications ===&lt;br /&gt;
Calculated monthly, this is the number of unique user devices actively receiving push notifications from a Moodle site. &lt;br /&gt;
&lt;br /&gt;
For example, for a site with 200 users enrolled and using the app with one device configured to receive push notifications, the potential number of active devices per month will be 200.&lt;br /&gt;
&lt;br /&gt;
==== Multimedia Push notifications ====&lt;br /&gt;
For Android only, the Push notifications received by your users can include images. Similar messages will be grouped, for example, when receiving private messaging notifications. Requires activation via the Moodle Apps Portal.&lt;br /&gt;
=== Custom site listing in search results ===&lt;br /&gt;
Enable users to find your site by name when logging in to the app, removing the need to type the full URL of your site. You can configure how the results are displayed in the “Site finder” in the Moodle Apps Portal, including adding an image for your site and additional information.&lt;br /&gt;
=== QR login ===&lt;br /&gt;
Your users will be able to log in to the app by scanning a QR login, available on their Moodle site profile. Requires activation in your Moodle site&#039;s administration settings, and is compatible with Moodle LMS 3.9 and later.&lt;br /&gt;
=== Biometric login ===&lt;br /&gt;
Streamline login for your users with fingerprint or Face ID authentication. For enhanced security, your users will be prompted to perform a regular standard login at intervals determined by your Moodle site&#039;s security settings. Requires activation via the Moodle Apps Portal, and individual user setup.&lt;br /&gt;
=== Offline courses per device per site ===&lt;br /&gt;
This feature allows users to download entire courses for offline access. Depending on the app plan, there will be varying limits on the number of courses users can download.&lt;br /&gt;
&lt;br /&gt;
The amount of individual activities and resources that users are allowed to download is unlimited. &lt;br /&gt;
=== Basic branding ===&lt;br /&gt;
Using an online tool in the Moodle Apps Portal, organisations can customise the colour palette of their site in the Moodle App (including the login screen). Requires activation via the Moodle Apps Portal.&lt;br /&gt;
=== Integration with Matomo Analytics ===&lt;br /&gt;
Organisations with Matomo Analytics integrated into their Moodle site can extend tracking capabilities to the app. To use this integration, you need to have your own instance of Matomo.&lt;br /&gt;
&lt;br /&gt;
Requires activation via the Moodle Apps Portal. For details, see the [[Moodle app guide for admins]].&lt;br /&gt;
=== Customisable app features via Moodle LMS site administration ===&lt;br /&gt;
Certain app functionality can be configured via the Moodle site. App configuration options vary depending on your subscription plan.&lt;br /&gt;
* Custom menu items: you can add your own links within the Moodle app menu. Your custom links will be available via the &#039;more&#039; menu (the three-dot ⋯ menu at the bottom of the app).&lt;br /&gt;
* Disabled features: you can select which Moodle features, such as blocks or modules, won’t be available on your app.&lt;br /&gt;
* Custom language strings: you can customise the app&#039;s language strings. &lt;br /&gt;
For more details, visit [[Moodle app guide for admins]].&lt;br /&gt;
=== Google Analytics for Firebase (BMA) ===&lt;br /&gt;
Google Analytics for Firebase is a free tool that provides valuable insights and data about how users interact with mobile apps. For compliance with GDPR, users will be able to disable it at any time.&lt;br /&gt;
&lt;br /&gt;
=== Custom notifications (BMA) ===&lt;br /&gt;
[[File:Captura de pantalla 2023-12-01 a las 11.13.19.png|thumb|200px]]&lt;br /&gt;
A tool available at the &amp;quot;Apps portal&amp;quot; will allow you to send customised Push notifications to all the active users of your Branded Moodle App.&lt;br /&gt;
&lt;br /&gt;
You will be able to provide a title, message and additional information in HTML format for your notifications. For Android users, it will be also possible to include a descriptive icon and image.&lt;br /&gt;
&lt;br /&gt;
=== Custom download page (BMA) ===&lt;br /&gt;
[[File:BMA Custom Download Page.png|thumb|200px]]&lt;br /&gt;
A tool available at the &amp;quot;Apps portal&amp;quot; will allow you to create a custom download page for your app by just providing the &amp;quot;App name&amp;quot; you want to display, a description and a descriptive image. &lt;br /&gt;
&lt;br /&gt;
[https://apps.moodle.com/local/apps/download.php?id=com.moodle.bcnacademy See the example here].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://support.moodle.com/support/solutions/folders/80000686596 FAQ for plans]&lt;br /&gt;
* [https://support.moodle.com/support/solutions/folders/80000686597 FAQ for BMA]&lt;br /&gt;
* [[Moodle app guide for admins]]&lt;br /&gt;
&lt;br /&gt;
[[es:Planes de Moodle app]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_plans&amp;diff=154589</id>
		<title>Moodle app plans</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_plans&amp;diff=154589"/>
		<updated>2025-11-06T07:48:25Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Premium plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
Our mobile application is absolutely free for end users, including students and teachers. They have unrestricted access to all the features they need to access courses, at no cost.&lt;br /&gt;
&lt;br /&gt;
However, organisations can [https://apps.moodle.com/local/apps/signup_site.php?plan=premium&amp;amp;origin=moodledocs subscribe to our Premium plan, or purchase a Branded Moodle App (BMA)]. These options provide additional, exclusive features to enhance their Moodle experience. &lt;br /&gt;
&lt;br /&gt;
By subscribing to a plan or purchasing a BMA, organisations also contribute to Moodle&#039;s sustainability.&lt;br /&gt;
== Free plan ==&lt;br /&gt;
The free plan is enabled by default for all Moodle Sites. It provides the most common functionality for students. Certain advanced functionalities are restricted, but organisations can enable them by upgrading to a Premium Plan.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What’s included in the Free plan?&#039;&#039;&#039;&lt;br /&gt;
* Compatible with most Moodle sites, except sites hosted by non-official partners or service providers.&lt;br /&gt;
* Access to all course content and most of the features for students available in LMS.&lt;br /&gt;
* 50 active devices for push notifications.&lt;br /&gt;
* Access to 2 offline courses per device per site.&lt;br /&gt;
* Customisable app features via Moodle site administration:&lt;br /&gt;
** 1 custom menu item.&lt;br /&gt;
** 1 disabled feature.&lt;br /&gt;
** 10 custom language strings.&lt;br /&gt;
== Premium plan ==&lt;br /&gt;
The Premium plan includes all the features of the free plan, plus basic branding customisation, Multimedia Push notifications, the possibility of finding your site by name, QR and Biometric login, Matomo analytics support options and unlimited devices for push notifications and offline courses.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What’s included in the Premium plan?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Compatible with most Moodle sites. &lt;br /&gt;
* [[#Basic_branding|Basic branding]].&lt;br /&gt;
* [[#Multimedia_Push_notifications|Multimedia Push notifications (Android only)]].&lt;br /&gt;
* [[#Custom_site_listing_in_search_results|Custom site listing in search results]].&lt;br /&gt;
* [[#QR_login|QR login]].&lt;br /&gt;
* [[#Biometric_login|Biometric login]].&lt;br /&gt;
* [[#Integration_with_Matomo_Analytics|Integration with Matomo Analytics]].&lt;br /&gt;
* [[#Active_devices_for_Push_notifications|Unlimited devices for push notifications]].&lt;br /&gt;
* [[#Offline_courses_per_device_per_site|Unlimited offline courses]].&lt;br /&gt;
* [[#Customisable_app_features_via_Moodle_LMS_site_administration|No limits to the app features that can be configured via Moodle LMS site administration]].&lt;br /&gt;
&lt;br /&gt;
== Branded Moodle App (BMA) ==&lt;br /&gt;
A Branded Moodle App includes all features from Premium plans, and provides organisations with their own app on Google Play and App store. The app name, logo and branding can be customised to match the organisation&#039;s identity, creating a trusted and consistent learning experience. &lt;br /&gt;
&lt;br /&gt;
=== Additional features available ===&lt;br /&gt;
* Your BMA can seamlessly connect with Google Analytics for Firebase, providing you with valuable insights into user behaviour, engagement, and app usage patterns.&lt;br /&gt;
* Custom notifications 				&lt;br /&gt;
* Custom download page&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more information, see bellow a detailed description of the features and visit the [https://moodle.com/branded-app/ Branded Moodle App page at moodle.com].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more information about the different subscription options visit the [https://apps.moodle.com Moodle Apps Portal].&lt;br /&gt;
&lt;br /&gt;
== Moodle App features ==&lt;br /&gt;
The following features are available to organisations depending on the Moodle App plan they subscribe to.&lt;br /&gt;
&lt;br /&gt;
=== Active devices for Push notifications ===&lt;br /&gt;
Calculated monthly, this is the number of unique user devices actively receiving push notifications from a Moodle site. &lt;br /&gt;
&lt;br /&gt;
For example, for a site with 200 users enrolled and using the app with one device configured to receive push notifications, the potential number of active devices per month will be 200.&lt;br /&gt;
&lt;br /&gt;
==== Multimedia Push notifications ====&lt;br /&gt;
For Android only, the Push notifications received by your users can include images. Similar messages will be grouped, for example, when receiving private messaging notifications. Requires activation via the Moodle Apps Portal.&lt;br /&gt;
=== Custom site listing in search results ===&lt;br /&gt;
Enable users to find your site by name when logging in to the app, removing the need to type the full URL of your site. You can configure how the results are displayed in the “Site finder” in the Moodle Apps Portal, including adding an image for your site and additional information.&lt;br /&gt;
=== QR login ===&lt;br /&gt;
Your users will be able to log in to the app by scanning a QR login, available on their Moodle site profile. Requires activation in your Moodle site&#039;s administration settings, and is compatible with Moodle LMS 3.9 and later.&lt;br /&gt;
=== Biometric login ===&lt;br /&gt;
Streamline login for your users with fingerprint or Face ID authentication. For enhanced security, your users will be prompted to perform a regular standard login at intervals determined by your Moodle site&#039;s security settings. Requires activation via the Moodle Apps Portal, and individual user setup.&lt;br /&gt;
=== Offline courses per device per site ===&lt;br /&gt;
This feature allows users to download entire courses for offline access. Depending on the app plan, there will be varying limits on the number of courses users can download.&lt;br /&gt;
&lt;br /&gt;
The amount of individual activities and resources that users are allowed to download is unlimited. &lt;br /&gt;
=== Basic branding ===&lt;br /&gt;
Using an online tool in the Moodle Apps Portal, organisations can customise the colour palette of their site in the Moodle App (including the login screen). Requires activation via the Moodle Apps Portal.&lt;br /&gt;
=== Integration with Matomo Analytics ===&lt;br /&gt;
Organisations with Matomo Analytics integrated into their Moodle site can extend tracking capabilities to the app. To use this integration, you need to have your own instance of Matomo.&lt;br /&gt;
&lt;br /&gt;
Requires activation via the Moodle Apps Portal. For details, see the [[Moodle app guide for admins]].&lt;br /&gt;
=== Customisable app features via Moodle LMS site administration ===&lt;br /&gt;
Certain app functionality can be configured via the Moodle site. App configuration options vary depending on your subscription plan.&lt;br /&gt;
* Custom menu items: you can add your own links within the Moodle app menu. Your custom links will be available via the &#039;more&#039; menu (the three-dot ⋯ menu at the bottom of the app).&lt;br /&gt;
* Disabled features: you can select which Moodle features, such as blocks or modules, won’t be available on your app.&lt;br /&gt;
* Custom language strings: you can customise the app&#039;s language strings. &lt;br /&gt;
For more details, visit [[Moodle app guide for admins]].&lt;br /&gt;
=== Google Analytics for Firebase (BMA) ===&lt;br /&gt;
Google Analytics for Firebase is a free tool that provides valuable insights and data about how users interact with mobile apps. For compliance with GDPR, users will be able to disable it at any time.&lt;br /&gt;
&lt;br /&gt;
=== Custom notifications (BMA) ===&lt;br /&gt;
[[File:Captura de pantalla 2023-12-01 a las 11.13.19.png|thumb|200px]]&lt;br /&gt;
A tool available at the &amp;quot;Apps portal&amp;quot; will allow you to send customised Push notifications to all the active users of your Branded Moodle App.&lt;br /&gt;
&lt;br /&gt;
You will be able to provide a title, message and additional information in HTML format for your notifications. For Android users, it will be also possible to include a descriptive icon and image.&lt;br /&gt;
&lt;br /&gt;
=== Custom download page (BMA) ===&lt;br /&gt;
[[File:BMA Custom Download Page.png|thumb|200px]]&lt;br /&gt;
A tool available at the &amp;quot;Apps portal&amp;quot; will allow you to create a custom download page for your app by just providing the &amp;quot;App name&amp;quot; you want to display, a description and a descriptive image. &lt;br /&gt;
&lt;br /&gt;
[https://apps.moodle.com/local/apps/download.php?id=com.moodle.bcnacademy See the example here].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://support.moodle.com/support/solutions/folders/80000686596 FAQ for plans]&lt;br /&gt;
* [https://support.moodle.com/support/solutions/folders/80000686597 FAQ for BMA]&lt;br /&gt;
* [[Moodle app guide for admins]]&lt;br /&gt;
&lt;br /&gt;
[[es:Planes de Moodle app]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_plans&amp;diff=154588</id>
		<title>Moodle app plans</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_plans&amp;diff=154588"/>
		<updated>2025-11-06T07:44:42Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Premium plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
Our mobile application is absolutely free for end users, including students and teachers. They have unrestricted access to all the features they need to access courses, at no cost.&lt;br /&gt;
&lt;br /&gt;
However, organisations can [https://apps.moodle.com/local/apps/signup_site.php?plan=premium&amp;amp;origin=moodledocs subscribe to our Premium plan, or purchase a Branded Moodle App (BMA)]. These options provide additional, exclusive features to enhance their Moodle experience. &lt;br /&gt;
&lt;br /&gt;
By subscribing to a plan or purchasing a BMA, organisations also contribute to Moodle&#039;s sustainability.&lt;br /&gt;
== Free plan ==&lt;br /&gt;
The free plan is enabled by default for all Moodle Sites. It provides the most common functionality for students. Certain advanced functionalities are restricted, but organisations can enable them by upgrading to a Premium Plan.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What’s included in the Free plan?&#039;&#039;&#039;&lt;br /&gt;
* Compatible with most Moodle sites, except sites hosted by non-official partners or service providers.&lt;br /&gt;
* Access to all course content and most of the features for students available in LMS.&lt;br /&gt;
* 50 active devices for push notifications.&lt;br /&gt;
* Access to 2 offline courses per device per site.&lt;br /&gt;
* Customisable app features via Moodle site administration:&lt;br /&gt;
** 1 custom menu item.&lt;br /&gt;
** 1 disabled feature.&lt;br /&gt;
** 10 custom language strings.&lt;br /&gt;
== Premium plan ==&lt;br /&gt;
The Premium plan includes all the features of the free plan, plus basic branding customisation, Multimedia Push notifications, the possibility of finding your site by name, QR and Biometric login, Matomo analytics support options and unlimited devices for push notifications and offline courses.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What’s included in the Premium plan?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Compatible with most Moodle sites. &lt;br /&gt;
* [[#Basic_branding|Basic branding]].&lt;br /&gt;
* Multimedia Push notifications (Android only).&lt;br /&gt;
* Custom site listing in search results.&lt;br /&gt;
* QR login.&lt;br /&gt;
* Biometric login.&lt;br /&gt;
* Integration with Matomo Analytics.&lt;br /&gt;
* Unlimited devices for push notifications.&lt;br /&gt;
* Unlimited offline courses.&lt;br /&gt;
* No limits to the app features that can be configured via Moodle LMS site administration.&lt;br /&gt;
&lt;br /&gt;
== Branded Moodle App (BMA) ==&lt;br /&gt;
A Branded Moodle App includes all features from Premium plans, and provides organisations with their own app on Google Play and App store. The app name, logo and branding can be customised to match the organisation&#039;s identity, creating a trusted and consistent learning experience. &lt;br /&gt;
&lt;br /&gt;
=== Additional features available ===&lt;br /&gt;
* Your BMA can seamlessly connect with Google Analytics for Firebase, providing you with valuable insights into user behaviour, engagement, and app usage patterns.&lt;br /&gt;
* Custom notifications 				&lt;br /&gt;
* Custom download page&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more information, see bellow a detailed description of the features and visit the [https://moodle.com/branded-app/ Branded Moodle App page at moodle.com].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more information about the different subscription options visit the [https://apps.moodle.com Moodle Apps Portal].&lt;br /&gt;
&lt;br /&gt;
== Moodle App features ==&lt;br /&gt;
The following features are available to organisations depending on the Moodle App plan they subscribe to.&lt;br /&gt;
&lt;br /&gt;
=== Active devices for Push notifications ===&lt;br /&gt;
Calculated monthly, this is the number of unique user devices actively receiving push notifications from a Moodle site. &lt;br /&gt;
&lt;br /&gt;
For example, for a site with 200 users enrolled and using the app with one device configured to receive push notifications, the potential number of active devices per month will be 200.&lt;br /&gt;
&lt;br /&gt;
==== Multimedia Push notifications ====&lt;br /&gt;
For Android only, the Push notifications received by your users can include images. Similar messages will be grouped, for example, when receiving private messaging notifications. Requires activation via the Moodle Apps Portal.&lt;br /&gt;
=== Custom site listing in search results ===&lt;br /&gt;
Enable users to find your site by name when logging in to the app, removing the need to type the full URL of your site. You can configure how the results are displayed in the “Site finder” in the Moodle Apps Portal, including adding an image for your site and additional information.&lt;br /&gt;
=== QR login ===&lt;br /&gt;
Your users will be able to log in to the app by scanning a QR login, available on their Moodle site profile. Requires activation in your Moodle site&#039;s administration settings, and is compatible with Moodle LMS 3.9 and later.&lt;br /&gt;
=== Biometric login ===&lt;br /&gt;
Streamline login for your users with fingerprint or Face ID authentication. For enhanced security, your users will be prompted to perform a regular standard login at intervals determined by your Moodle site&#039;s security settings. Requires activation via the Moodle Apps Portal, and individual user setup.&lt;br /&gt;
=== Offline courses per device per site ===&lt;br /&gt;
This feature allows users to download entire courses for offline access. Depending on the app plan, there will be varying limits on the number of courses users can download.&lt;br /&gt;
&lt;br /&gt;
The amount of individual activities and resources that users are allowed to download is unlimited. &lt;br /&gt;
=== Basic branding ===&lt;br /&gt;
Using an online tool in the Moodle Apps Portal, organisations can customise the colour palette of their site in the Moodle App (including the login screen). Requires activation via the Moodle Apps Portal.&lt;br /&gt;
=== Integration with Matomo Analytics ===&lt;br /&gt;
Organisations with Matomo Analytics integrated into their Moodle site can extend tracking capabilities to the app. To use this integration, you need to have your own instance of Matomo.&lt;br /&gt;
&lt;br /&gt;
Requires activation via the Moodle Apps Portal. For details, see the [[Moodle app guide for admins]].&lt;br /&gt;
=== Customisable app features via Moodle LMS site administration ===&lt;br /&gt;
Certain app functionality can be configured via the Moodle site. App configuration options vary depending on your subscription plan.&lt;br /&gt;
* Custom menu items: you can add your own links within the Moodle app menu. Your custom links will be available via the &#039;more&#039; menu (the three-dot ⋯ menu at the bottom of the app).&lt;br /&gt;
* Disabled features: you can select which Moodle features, such as blocks or modules, won’t be available on your app.&lt;br /&gt;
* Custom language strings: you can customise the app&#039;s language strings. &lt;br /&gt;
For more details, visit [[Moodle app guide for admins]].&lt;br /&gt;
=== Google Analytics for Firebase (BMA) ===&lt;br /&gt;
Google Analytics for Firebase is a free tool that provides valuable insights and data about how users interact with mobile apps. For compliance with GDPR, users will be able to disable it at any time.&lt;br /&gt;
&lt;br /&gt;
=== Custom notifications (BMA) ===&lt;br /&gt;
[[File:Captura de pantalla 2023-12-01 a las 11.13.19.png|thumb|200px]]&lt;br /&gt;
A tool available at the &amp;quot;Apps portal&amp;quot; will allow you to send customised Push notifications to all the active users of your Branded Moodle App.&lt;br /&gt;
&lt;br /&gt;
You will be able to provide a title, message and additional information in HTML format for your notifications. For Android users, it will be also possible to include a descriptive icon and image.&lt;br /&gt;
&lt;br /&gt;
=== Custom download page (BMA) ===&lt;br /&gt;
[[File:BMA Custom Download Page.png|thumb|200px]]&lt;br /&gt;
A tool available at the &amp;quot;Apps portal&amp;quot; will allow you to create a custom download page for your app by just providing the &amp;quot;App name&amp;quot; you want to display, a description and a descriptive image. &lt;br /&gt;
&lt;br /&gt;
[https://apps.moodle.com/local/apps/download.php?id=com.moodle.bcnacademy See the example here].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://support.moodle.com/support/solutions/folders/80000686596 FAQ for plans]&lt;br /&gt;
* [https://support.moodle.com/support/solutions/folders/80000686597 FAQ for BMA]&lt;br /&gt;
* [[Moodle app guide for admins]]&lt;br /&gt;
&lt;br /&gt;
[[es:Planes de Moodle app]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_plans&amp;diff=154587</id>
		<title>Moodle app plans</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_plans&amp;diff=154587"/>
		<updated>2025-11-06T07:41:48Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
Our mobile application is absolutely free for end users, including students and teachers. They have unrestricted access to all the features they need to access courses, at no cost.&lt;br /&gt;
&lt;br /&gt;
However, organisations can [https://apps.moodle.com/local/apps/signup_site.php?plan=premium&amp;amp;origin=moodledocs subscribe to our Premium plan, or purchase a Branded Moodle App (BMA)]. These options provide additional, exclusive features to enhance their Moodle experience. &lt;br /&gt;
&lt;br /&gt;
By subscribing to a plan or purchasing a BMA, organisations also contribute to Moodle&#039;s sustainability.&lt;br /&gt;
== Free plan ==&lt;br /&gt;
The free plan is enabled by default for all Moodle Sites. It provides the most common functionality for students. Certain advanced functionalities are restricted, but organisations can enable them by upgrading to a Premium Plan.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What’s included in the Free plan?&#039;&#039;&#039;&lt;br /&gt;
* Compatible with most Moodle sites, except sites hosted by non-official partners or service providers.&lt;br /&gt;
* Access to all course content and most of the features for students available in LMS.&lt;br /&gt;
* 50 active devices for push notifications.&lt;br /&gt;
* Access to 2 offline courses per device per site.&lt;br /&gt;
* Customisable app features via Moodle site administration:&lt;br /&gt;
** 1 custom menu item.&lt;br /&gt;
** 1 disabled feature.&lt;br /&gt;
** 10 custom language strings.&lt;br /&gt;
== Premium plan ==&lt;br /&gt;
The Premium plan includes all the features of the free plan, plus basic branding customisation, Multimedia Push notifications, the possibility of finding your site by name, QR and Biometric login, Matomo analytics support options and unlimited devices for push notifications and offline courses.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What’s included in the Premium plan?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Compatible with most Moodle sites. &lt;br /&gt;
* Basic branding.&lt;br /&gt;
* Multimedia Push notifications (Android only).&lt;br /&gt;
* Custom site listing in search results.&lt;br /&gt;
* QR login.&lt;br /&gt;
* Biometric login.&lt;br /&gt;
* Integration with Matomo Analytics.&lt;br /&gt;
* Unlimited devices for push notifications.&lt;br /&gt;
* Unlimited offline courses.&lt;br /&gt;
* No limits to the app features that can be configured via Moodle LMS site administration.&lt;br /&gt;
== Branded Moodle App (BMA) ==&lt;br /&gt;
A Branded Moodle App includes all features from Premium plans, and provides organisations with their own app on Google Play and App store. The app name, logo and branding can be customised to match the organisation&#039;s identity, creating a trusted and consistent learning experience. &lt;br /&gt;
&lt;br /&gt;
=== Additional features available ===&lt;br /&gt;
* Your BMA can seamlessly connect with Google Analytics for Firebase, providing you with valuable insights into user behaviour, engagement, and app usage patterns.&lt;br /&gt;
* Custom notifications 				&lt;br /&gt;
* Custom download page&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more information, see bellow a detailed description of the features and visit the [https://moodle.com/branded-app/ Branded Moodle App page at moodle.com].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more information about the different subscription options visit the [https://apps.moodle.com Moodle Apps Portal].&lt;br /&gt;
&lt;br /&gt;
== Moodle App features ==&lt;br /&gt;
The following features are available to organisations depending on the Moodle App plan they subscribe to.&lt;br /&gt;
&lt;br /&gt;
=== Active devices for Push notifications ===&lt;br /&gt;
Calculated monthly, this is the number of unique user devices actively receiving push notifications from a Moodle site. &lt;br /&gt;
&lt;br /&gt;
For example, for a site with 200 users enrolled and using the app with one device configured to receive push notifications, the potential number of active devices per month will be 200.&lt;br /&gt;
&lt;br /&gt;
==== Multimedia Push notifications ====&lt;br /&gt;
For Android only, the Push notifications received by your users can include images. Similar messages will be grouped, for example, when receiving private messaging notifications. Requires activation via the Moodle Apps Portal.&lt;br /&gt;
=== Custom site listing in search results ===&lt;br /&gt;
Enable users to find your site by name when logging in to the app, removing the need to type the full URL of your site. You can configure how the results are displayed in the “Site finder” in the Moodle Apps Portal, including adding an image for your site and additional information.&lt;br /&gt;
=== QR login ===&lt;br /&gt;
Your users will be able to log in to the app by scanning a QR login, available on their Moodle site profile. Requires activation in your Moodle site&#039;s administration settings, and is compatible with Moodle LMS 3.9 and later.&lt;br /&gt;
=== Biometric login ===&lt;br /&gt;
Streamline login for your users with fingerprint or Face ID authentication. For enhanced security, your users will be prompted to perform a regular standard login at intervals determined by your Moodle site&#039;s security settings. Requires activation via the Moodle Apps Portal, and individual user setup.&lt;br /&gt;
=== Offline courses per device per site ===&lt;br /&gt;
This feature allows users to download entire courses for offline access. Depending on the app plan, there will be varying limits on the number of courses users can download.&lt;br /&gt;
&lt;br /&gt;
The amount of individual activities and resources that users are allowed to download is unlimited. &lt;br /&gt;
=== Basic branding ===&lt;br /&gt;
Using an online tool in the Moodle Apps Portal, organisations can customise the colour palette of their site in the Moodle App (including the login screen). Requires activation via the Moodle Apps Portal.&lt;br /&gt;
=== Integration with Matomo Analytics ===&lt;br /&gt;
Organisations with Matomo Analytics integrated into their Moodle site can extend tracking capabilities to the app. To use this integration, you need to have your own instance of Matomo.&lt;br /&gt;
&lt;br /&gt;
Requires activation via the Moodle Apps Portal. For details, see the [[Moodle app guide for admins]].&lt;br /&gt;
=== Customisable app features via Moodle LMS site administration ===&lt;br /&gt;
Certain app functionality can be configured via the Moodle site. App configuration options vary depending on your subscription plan.&lt;br /&gt;
* Custom menu items: you can add your own links within the Moodle app menu. Your custom links will be available via the &#039;more&#039; menu (the three-dot ⋯ menu at the bottom of the app).&lt;br /&gt;
* Disabled features: you can select which Moodle features, such as blocks or modules, won’t be available on your app.&lt;br /&gt;
* Custom language strings: you can customise the app&#039;s language strings. &lt;br /&gt;
For more details, visit [[Moodle app guide for admins]].&lt;br /&gt;
=== Google Analytics for Firebase (BMA) ===&lt;br /&gt;
Google Analytics for Firebase is a free tool that provides valuable insights and data about how users interact with mobile apps. For compliance with GDPR, users will be able to disable it at any time.&lt;br /&gt;
&lt;br /&gt;
=== Custom notifications (BMA) ===&lt;br /&gt;
[[File:Captura de pantalla 2023-12-01 a las 11.13.19.png|thumb|200px]]&lt;br /&gt;
A tool available at the &amp;quot;Apps portal&amp;quot; will allow you to send customised Push notifications to all the active users of your Branded Moodle App.&lt;br /&gt;
&lt;br /&gt;
You will be able to provide a title, message and additional information in HTML format for your notifications. For Android users, it will be also possible to include a descriptive icon and image.&lt;br /&gt;
&lt;br /&gt;
=== Custom download page (BMA) ===&lt;br /&gt;
[[File:BMA Custom Download Page.png|thumb|200px]]&lt;br /&gt;
A tool available at the &amp;quot;Apps portal&amp;quot; will allow you to create a custom download page for your app by just providing the &amp;quot;App name&amp;quot; you want to display, a description and a descriptive image. &lt;br /&gt;
&lt;br /&gt;
[https://apps.moodle.com/local/apps/download.php?id=com.moodle.bcnacademy See the example here].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://support.moodle.com/support/solutions/folders/80000686596 FAQ for plans]&lt;br /&gt;
* [https://support.moodle.com/support/solutions/folders/80000686597 FAQ for BMA]&lt;br /&gt;
* [[Moodle app guide for admins]]&lt;br /&gt;
&lt;br /&gt;
[[es:Planes de Moodle app]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_FAQ&amp;diff=154586</id>
		<title>Moodle app FAQ</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_FAQ&amp;diff=154586"/>
		<updated>2025-11-06T07:35:30Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Administrators */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
==Students==&lt;br /&gt;
===How can I log in?===&lt;br /&gt;
To log in to your Moodle site with the Moodle App, you need the URL (web address) of the Moodle site that you’re trying to access. If your organisation has Search enabled, you can try searching by the name of your organisation or eLearning site.&lt;br /&gt;
&lt;br /&gt;
If your organisation allows you to log in via QR code, you’ll find the QR code at the bottom of your user profile on your Moodle site. You just need to press “Scan QR code” on the app, scan the QR code on your profile and you’ll be logged in automatically.&lt;br /&gt;
&lt;br /&gt;
If your organisation allows you to log in using face recognition or fingerprint, you can activate this in the App, going to User account &amp;gt; Preferences. You’ll need to have biometric authentication enabled in your own device’s settings. &lt;br /&gt;
===Who can I contact for help with the app?===&lt;br /&gt;
If you’re a student and need help with issues related to logging in, registering to a Moodle site or trouble connecting to the app, you should contact your school or learning organisation. For example, one of your teachers, or the person who takes care of Moodle.&lt;br /&gt;
Moodle HQ make the Moodle software and the Moodle app, but they don’t manage nor have access to your Moodle site or your user data.&lt;br /&gt;
===How can I get the Moodle app?===&lt;br /&gt;
You can download the Moodle App for free from [https://play.google.com/store/apps/details?id=com.moodle.moodlemobile Google Play] and the Apple [https://itunes.apple.com/app/moodle-mobile/id633359593?mt=8 App Store]. You will find it by searching “Moodle”, and the author/owner is “Moodle Pty Ltd”.&lt;br /&gt;
If you are unable to download the app from Google play, please visit [https://download.moodle.org/mobile/ Moodle app downloads]&lt;br /&gt;
===I can&#039;t get the app to work. ===&lt;br /&gt;
To ensure that the Moodle app functions properly, please double-check that you have correctly entered the URL address of the Moodle site you are using (please visit [https://docs.moodle.org/en/Moodle_app_FAQ#I_can%E2%80%99t_find_my_Moodle_site_in_the_app. I can’t find my Moodle site in the app]). If you are experiencing difficulties connecting to your site, please contact the person or team who takes care of Moodle in your school or learning organisation. Please note the app only works with Moodle sites that have been set up to allow it, and that are running on at least Moodle 3.5.&lt;br /&gt;
&lt;br /&gt;
===I can’t find my Moodle site in the app. ===&lt;br /&gt;
To find your Moodle site on the app login screen, try searching for the name of your school or learning organisation.&lt;br /&gt;
&lt;br /&gt;
If your school or organisation doesn’t appear in the search, you can try searching by your Moodle site URL address instead. If you don’t know the address of your Moodle site, here’s how you can find it:&lt;br /&gt;
# Open a web browser (like Chrome or Safari) and go to your school’s Moodle site login page.&lt;br /&gt;
# At the top of the page in the address bar, you&#039;ll see the URL address of your Moodle site, e.g. “campus.example.edu”. [[File:FAQ I cant find my site 1.png|alt=URL|thumb|none|&#039;&#039;campus.example.edu&#039;&#039;]]&lt;br /&gt;
# Copy the URL (don’t copy the /login nor what comes after), paste it into Your site in the app, then select Connect to your site. [[File:FAQ I cant find my site 2.png|alt=Adding an URL to the app|thumb|none|Adding an URL to the app]]&lt;br /&gt;
# Now you can log in to your site with your username and password.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you tried searching by URL address and still can’t find your Moodle site, please get in touch with the person who takes care of Moodle in your school or learning organisation.&lt;br /&gt;
===I can’t log in with the app===&lt;br /&gt;
To log in to your Moodle site using the app, you first need to connect to your school’s Moodle site (view [[I can’t find my Moodle site in the app]] if you can’t find your site).&lt;br /&gt;
&lt;br /&gt;
Once you’ve connected to your Moodle site, you should be able to log in with your usual username and password.&lt;br /&gt;
&lt;br /&gt;
If you forgot your username or password, select the option &#039;&#039;&#039;Forgotten your username or password?&#039;&#039;&#039;. If you still have trouble logging in or can’t see any options for retrieving your username or password, please get in touch with the person who takes care of Moodle in your school or learning organisation.&lt;br /&gt;
===I see an error message when I try to use the app===&lt;br /&gt;
If you see an error message that prevents you from using the app, please get in touch with the person who takes care of Moodle in your school or learning organisation. &lt;br /&gt;
&lt;br /&gt;
Some of the most common errors that your school or learning organisation will be able to fix are:&lt;br /&gt;
* Your token is expired or not valid.&lt;br /&gt;
* An error mentioning the parameter “includestealthmodules”.&lt;br /&gt;
* The web service function is not available.&lt;br /&gt;
* A message about site maintenance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you’re experiencing any of these errors, contact your school or learning organisation for help.&lt;br /&gt;
===What permissions does the app require?===&lt;br /&gt;
The app requires the following permissions:&lt;br /&gt;
* Record audio - for uploading to your Moodle site&lt;br /&gt;
* Read and modify the contents of your SD card - for content to be downloaded to your SD Card for offline access.&lt;br /&gt;
* Network access - to be able to connect with your Moodle site and check if you are connected, and if not to switch to offline mode.&lt;br /&gt;
* Run at startup - to receive local notifications even when the app is running in the background.&lt;br /&gt;
* Prevent phone from sleeping - to receive push notifications anytime.&lt;br /&gt;
===What are the minimum device requirements to use the Moodle app?===&lt;br /&gt;
Android devices: Require Android 7.0 or later. (Users with Android 5 and 6 can still use version 4.3, but they will not receive any new updates.)&lt;br /&gt;
&lt;br /&gt;
iOS devices (iPhones/iPads): Require iOS 13 or later. (Please note the app was only tested on versions iOS 14 and onward.)&lt;br /&gt;
&lt;br /&gt;
===I can&#039;t see my course on the app. What do I do?===&lt;br /&gt;
Check with your course tutor that you are correctly enrolled.&lt;br /&gt;
=== Why can&#039;t I upload my assignment on the app?===&lt;br /&gt;
If you’re experiencing any issue uploading assignment, please contact your school or learning organisation for help.&lt;br /&gt;
===Why can&#039;t I sometimes access the app or submit anything to it?===&lt;br /&gt;
This could be because of interruptions in your internet connection. Wait a while and try again. If you continue to have problems, contact your school or learning organisation for help.&lt;br /&gt;
===Is there a space limit on my files?===&lt;br /&gt;
Assignments will have a size limit which you can see, those are set by your teachers. For other space limit questions, check with your your school or learning organisation .&lt;br /&gt;
===When are activities completed offline synchronized?===&lt;br /&gt;
See [[Moodle app synchronization]].&lt;br /&gt;
===Why the site is asking for my username and password when an activity is opened in the browser?===&lt;br /&gt;
For security reasons, between auto-logins you must wait 6 minutes (this should not be a problem because most of the browsers will keep your Moodle session open).&lt;br /&gt;
In recent Moodle versions, the previous value can be configured in Site Administration &amp;gt; Mobile app authentication &amp;gt;  Minimum time between auto-login requests&lt;br /&gt;
&lt;br /&gt;
=== The Moodle app might seem slow (especially on Android devices) ===&lt;br /&gt;
If the app feels slow, it might be due to things outside the app itself. This can include:&lt;br /&gt;
* Slow internet connection&lt;br /&gt;
* Network problems&lt;br /&gt;
* The server responding slowly&lt;br /&gt;
* Content or settings not made for mobile&lt;br /&gt;
* Using the app on an old or slow device&lt;br /&gt;
&lt;br /&gt;
We test the app carefully on many sites before each release, and we’re confident it usually works as well as or better than the website.&lt;br /&gt;
&lt;br /&gt;
To make sure your site works well on mobile, please check [[Creating mobile-friendly courses]]&lt;br /&gt;
&lt;br /&gt;
Finally, to troubleshoot this problem, we recommend trying the application with our demo site: https://school.moodledemo.net. Simply use the username &amp;quot;student&amp;quot; and the relevant password to access the site. If you find that the navigation and overall experience with the app are improved, then the issue may be at the server level. In this case, we suggest contacting your school or learning organisation for further assistance.&lt;br /&gt;
&lt;br /&gt;
=== The Moodle app restarts/ closes / reopenes itself ===&lt;br /&gt;
This is likely because there are too many apps opened on your mobile device. Mobile devices have a finite amount of memory, and the device&#039;s memory manager is responsible for determining which applications to keep open and which to close.&lt;br /&gt;
To optimise your device&#039;s performance, we recommend closing all applications that are not currently in use. This will free up valuable memory and ensure that your device runs smoothly.&lt;br /&gt;
===I use LineageOS and I&#039;m having problems using the app===&lt;br /&gt;
LineageOS uses a different WebView implementation not compatible vith the app. You need to install &amp;quot;Android System WebView&amp;quot; from Google Play (or via a trusted apk) and enabling it via Settings &amp;gt; Developer options &amp;gt; WebView implementation.&lt;br /&gt;
===H5P packages and external content embedded via iframes are not working on iOS ===&lt;br /&gt;
This is caused by a new feature of iOS 14 called ITP that blocks cookies for external sites embedded in the app (the H5P content is played embedded in an iframe pointing to the Moodle website) unless the user enables a setting in the app to allow those cookies.&lt;br /&gt;
&lt;br /&gt;
The quick workaround is to enable the setting &amp;quot;Allow Cross-Website Tracking&amp;quot; available via the Settings app (look for the Moodle app, at the bottom) on your iPhone/iPad with iOS 14.&lt;br /&gt;
===I cannot reproduce audio that was recorded on browser on iOS devices (iPhones and iPads)===&lt;br /&gt;
This behaviour is related to this Moodle LMS bug: https://tracker.moodle.org/browse/MDL-80114&lt;br /&gt;
&lt;br /&gt;
=== I don&#039;t receive calendar notifications (reminders) when using Android 12 or above === &lt;br /&gt;
&lt;br /&gt;
In order to receive calendar notifications you need to allow alarms and reminders for the Moodle app. To do this:&lt;br /&gt;
* Open Android Settings and go to the Moodle app settings. Another way to reach these settings is by long-clicking the Moodle app icon and pressing &amp;quot;App info&amp;quot;.&lt;br /&gt;
* Make sure that Notifications are enabled.&lt;br /&gt;
* If you see a section called &amp;quot;Alarms &amp;amp; reminders&amp;quot;, make sure it is Allowed (this setting is disabled by default in Android 14+).&lt;br /&gt;
&lt;br /&gt;
==Teachers==&lt;br /&gt;
===How can I enable videos in my course to be downloaded?===&lt;br /&gt;
See the section &#039;Media download for offline usage&#039; in [[Creating Moodle-app-friendly courses]].&lt;br /&gt;
===Which course format is it best to use?===&lt;br /&gt;
Topics or weekly course format is best suited to mobile devices.&lt;br /&gt;
===How do I make YouTube links open automatically in the app?===&lt;br /&gt;
Add YouTube links as a [[URL resource]].&lt;br /&gt;
===Why can&#039;t my students see their courses?===&lt;br /&gt;
If you or an administrator have correctly enrolled them in a course, they can see it in their mobile app. If they are correctly enrolled but can still not see their course, ask them to check with your Moodle site administrator.&lt;br /&gt;
=== I can&#039;t mark assignments in the app===&lt;br /&gt;
If you are experiencing problems when grading, please review that you are using the correct decimal separators (if the app interface is in English, you must use a period).&lt;br /&gt;
===What communications tools can I use in the app to engage with my learners?===&lt;br /&gt;
See [[Mobile app notifications]]. Chat, forums and messaging are all supported by the app.&lt;br /&gt;
===My Vimeo videos are not playing in the app===&lt;br /&gt;
In older versions of Moodle (pre-Moodle 3.7), it may be necessary to activate the &amp;quot;Allow frame embedding&amp;quot; admin setting. However, for those using Moodle version 3.7 or later, it is important to check whether a Proxy/Firewall/Web Server security module is setting the X-Frame-Options header in your HTTP request responses. If this is the case, it is recommended to deactivate this feature as it may cause conflicts, as Moodle already sets this header by default. &lt;br /&gt;
&lt;br /&gt;
This setting is typically found in any of these configuration files .htaccess, httpd.conf or VirtualHost. To disable it, you can just use: Header always unset X-Frame-Options &lt;br /&gt;
&lt;br /&gt;
You may also use Bootstrap responsive classes: https://getbootstrap.com/docs/4.0/utilities/embed/, for example, &amp;lt;div class=&amp;quot;embed-responsive&amp;quot;&amp;gt;&lt;br /&gt;
For older versions, see this forum discussion with a workaround: https://moodle.org/mod/forum/discuss.php?d=327342&lt;br /&gt;
&lt;br /&gt;
If the issue is with vimeo videos on Moodle sites 3.10 or 3.11, please update the Moodle site to the latest version possible (at least 3.10.10 or 3.11.6). (See https://tracker.moodle.org/browse/MDL-74042)&lt;br /&gt;
===ReCaptcha doesn&#039;t work on my site===&lt;br /&gt;
In older versions of Moodle (pre-Moodle 3.7), it may be necessary to activate the &amp;quot;Allow frame embedding&amp;quot; admin setting. However, for those using Moodle version 3.7 or later, it is important to check whether a Proxy/Firewall/Web Server security module is setting the X-Frame-Options header in your HTTP request responses. If this is the case, it is recommended to deactivate this feature as it may cause conflicts, as Moodle already sets this header by default. &lt;br /&gt;
===H5P packages don&#039;t work on my site===&lt;br /&gt;
In older versions of Moodle (pre-Moodle 3.7), it may be necessary to activate the &amp;quot;Allow frame embedding&amp;quot; admin setting. However, for those using Moodle version 3.7 or later, it is important to check whether a Proxy/Firewall/Web Server security module is setting the X-Frame-Options header in your HTTP request responses. If this is the case, it is recommended to deactivate this feature as it may cause conflicts, as Moodle already sets this header by default. &lt;br /&gt;
&lt;br /&gt;
This setting is typically found in any of these configuration files .htaccess, httpd.conf or VirtualHost. To disable it, you can just use: Header always unset X-Frame-Options &lt;br /&gt;
&lt;br /&gt;
This can also happen when you are using the non-official H5P plugin (mod_hvp), in that case you will see the following message: This site is not configured properly for displaying mobile H5P content. Please contact a site administrator so they can apply the above suggested configuration changes.&lt;br /&gt;
&lt;br /&gt;
If you are using the non-official H5P plugin (mod_hvp) you can also try changing the plugin settings &amp;quot;Mobile rendering handler&amp;quot; and try the different options until you find the one that works for you. You might need to restart the app everytime you change the settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cookies issues&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If your site uses HTTPS please ensure that the &amp;quot;Secure cookies only&amp;quot; (cookiesecure) setting under Site administration &amp;gt; HTTP security is enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency errors&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the following error appears &amp;quot;Missing dependency H5P.Editor. something X required by H5P.Editor. something Y&amp;quot;. H5P packages need to include all the libraries (dependencies) they use so the package is self-contained. But sometimes packages might be missing at least one dependency.&lt;br /&gt;
&lt;br /&gt;
In order to fix this, you could do the following:&lt;br /&gt;
&lt;br /&gt;
Open Moodle’s Content Bank (from the link in the problematic H5P settings page) and upload your H5P package there, once uploaded, you will see the H5P package and an “Edit” button, click on that button so the editor opens, scroll down and click “Save”.&lt;br /&gt;
Now, you can replace the problematic H5P with this new one, for this, you can just include it from the Content bank by opening the activity settings page and the file picker.&lt;br /&gt;
&lt;br /&gt;
=== I use a Moodle plugin but the app says it is not supported ===&lt;br /&gt;
You should contact the plugin developer and point him to this documentation: https://docs.moodle.org/dev/Moodle_Mobile_Remote_addons where it is explained how to add support to plugins in the Mobile app.&lt;br /&gt;
&lt;br /&gt;
There is a list of Moodle plugins supported by the app here: https://moodle.org/plugins/browse.php?list=award&amp;amp;id=6&lt;br /&gt;
&lt;br /&gt;
To learn more about how the Moodle app works and how to make your plugins compatible, check out the intermediate-level Moodle Academy course [https://moodle.academy/enrol/index.php?id=71 Make Your Plugin Moodle App Compatible].&lt;br /&gt;
&lt;br /&gt;
=== I have problems playing SCORM packages ===&lt;br /&gt;
This might be caused because:&lt;br /&gt;
* The SCORM was added using an advanced option (remote imsmanifest.xml packages or file system repository unzipped SCORMS)&lt;br /&gt;
* The SCORM ZIP file was created using a tool that does not create standardised ZIP files (for example, zip files containing the inverted path separator &amp;quot;\&amp;quot; will not work on Android)&lt;br /&gt;
Please refer to [[Moodle app SCORM player]] for additional information.&lt;br /&gt;
=== My quizzes or lessons are not working offline ===&lt;br /&gt;
You need to edit the quiz or lesson activity settings and enable the &amp;quot;Allow lesson/quiz to be attempted offline using the mobile app&amp;quot; configuration option.&lt;br /&gt;
=== Maths notation is not displaying correctly in the app ===&lt;br /&gt;
If you are having issues with MathJax, please enable the [[TeX notation filter]] also.&lt;br /&gt;
&lt;br /&gt;
If you have both filters enabled, please leave MathJax above TeX so it is always processed before TeX.&lt;br /&gt;
&lt;br /&gt;
If the issue persists, we suggest disabling the &#039;Remove HTML tags from all activity names&#039; (&#039;&#039;formatstringstriptags&#039;&#039;) option in &#039;&#039;Site Administration&#039;&#039; &amp;gt; &#039;&#039;Appearance&#039;&#039; &amp;gt; &#039;&#039;HTML settings&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== How can I disable text selection / copy in the app? ===&lt;br /&gt;
You can create a remote theme and add some custom CSS rules to disable it, see https://docs.moodle.org/dev/Moodle_Mobile_Themes&lt;br /&gt;
=== My images, videos or audios stop working after the first time ===&lt;br /&gt;
Please make sure the URL you&#039;re using on the media file doesn&#039;t have any redirect (e.g. http to https), always try to use the final URL. There&#039;s a bug in the library we use to download those files, it doesn&#039;t work when downloading files with redirects. We have plans to remove that library from the app, but since then please always try to use URLs without redirects.&lt;br /&gt;
&lt;br /&gt;
=== Embedded YouTube videos are not working on iOS Moodle App (Error 153) ===&lt;br /&gt;
Unfortunately recent changes (October 2025) implemented by YouTube have disrupted the functionality of embedded YouTube videos in the Moodle app and other apps. This issue is beyond our control, and we have already reported this problem to all the third-parties that could provide a solution to help address this issue.&lt;br /&gt;
&lt;br /&gt;
We are developing a workaround that will be included in the next version of the app, 5.1.0. Please note that the 5.1.0 app is still under development, and it will take some time to complete the quality assurance process and make it available in the app stores.&lt;br /&gt;
&lt;br /&gt;
Please visit https://moodle.org/mod/forum/discuss.php?d=470700#p1889793 for more information&lt;br /&gt;
&lt;br /&gt;
==Administrators==&lt;br /&gt;
=== What plans are available for the Moodle app? ===&lt;br /&gt;
There are two main plans available for the Moodle app: Free, and Premium, each offering different features. In addition to the plans, there is also a Branded Moodle App (BMA) option. The BMA is a custom-built app that is branded to your organization. Learn more in [[Moodle app plans]].&lt;br /&gt;
=== How can I have my site listed in the Moodle app site finder? ===&lt;br /&gt;
Please refer to our [[Moodle app guide for admins]] for instructions.&lt;br /&gt;
=== How can I debug errors in the app? ===&lt;br /&gt;
Go to the More tab and then to Settings &amp;gt; General. Enable &amp;quot;Display debug messages&amp;quot;. This will show an explanatory message when an error occurs, alternatively, you can do a full debugging via: https://docs.moodle.org/dev/Moodle_Mobile_debugging_WS_requests&lt;br /&gt;
&lt;br /&gt;
=== How can I disable features in the app? ===&lt;br /&gt;
Please go to &#039;&#039;Site administration &amp;gt; Mobile features &amp;gt; Disabled features&#039;&#039; and select all the features you want to disable.&lt;br /&gt;
&lt;br /&gt;
To select multiple features you will have to use Ctrl (Cmd in Mac) + Click&lt;br /&gt;
&lt;br /&gt;
=== How can I add custom menu items in the app? ===&lt;br /&gt;
You can add custom additional menu items in the &amp;quot;more&amp;quot; menu of the app, the one represented by three consecutive dots.&lt;br /&gt;
&lt;br /&gt;
Please go to &#039;&#039;Site administration &amp;gt; Mobile features &amp;gt; Custom menu items&#039;&#039; and follow the instructions in [[Moodle_app_guide_for_admins#Custom_menu_items|Moodle app guide for admins]] for the correct format to use.&lt;br /&gt;
&lt;br /&gt;
As a quick example:&lt;br /&gt;
  Academy information|https://yoursite.com/mod/page/view.php?id=X |app|en|home&lt;br /&gt;
&lt;br /&gt;
=== How can I customise the language strings in the app? ===&lt;br /&gt;
&lt;br /&gt;
Please go to &#039;&#039;Site administration &amp;gt; Mobile features &amp;gt; Custom language strings&#039;&#039; and follow the instructions in [[Moodle_app_guide_for_admins#Custom_language_strings|Moodle app guide for admins]] for the format to use.&lt;br /&gt;
&lt;br /&gt;
As a quick example:&lt;br /&gt;
 core.user.student|Learner|en&lt;br /&gt;
 core.user.student|Aprendiz|es&lt;br /&gt;
&lt;br /&gt;
=== I can connect with my iPhone (or iPad) but not with my Android phone ===&lt;br /&gt;
This usually happens when the site is using https and the certificate is not correctly configured or it is using an old protocol, please use these pages to check this certificate: https://www.sslshopper.com/ssl-checker.html, https://www.geocerts.com/ssl_checker, and https://www.ssllabs.com/ssltest/analyze.html&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The certificate of this site cannot be trusted by your device: TLS connection could not be established: javax.net.ssl.SSLHandshakeException&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This error could be caused because in any of the certification paths there is a certificate using SHA-1. Starting Android 10 this is not allowed, more information here: https://developer.android.com/privacy-and-security/security-ssl&lt;br /&gt;
&lt;br /&gt;
You could easily check the previous using https://www.ssllabs.com/ssltest/analyze.html and going to the Certification Paths -&amp;gt; Android section, if there is any mention to SHA-1 this could be the cause. You will need to upgrade your certificates to avoid using SHA-1.&lt;br /&gt;
&lt;br /&gt;
=== My certificate is fine but I still can&#039;t connect ===&lt;br /&gt;
This is usually a server configuration problem caused by any of the following server configuration issues:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Access to XMLHttpRequest at &#039;https://yoursite/webservice/rest/server.php?moodlewsrestformat=json&amp;lt;nowiki/&amp;gt;...&#039; from origin &#039;&amp;lt;nowiki&amp;gt;http://localhost&#039;&amp;lt;/nowiki&amp;gt; has been blocked by CORS policy: No &#039;Access-Control-Allow-Origin&#039; header is present on the requested resource.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is because a Proxy/Firewall/Web Server security module is removing automatically the Access-Control-Allow-Origin: * header that Moodle sets to allow Web Service requests. &lt;br /&gt;
&lt;br /&gt;
It is totally secure to remove that Proxy/Firewall/Web Server rule/configuration because that header is only set by Moodle when needed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;access-control-allow-origin cannot contain more than one origin&amp;quot;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
iOS and Android apps do not allow the following header to contain more than one item: &amp;quot;Access-Control-Allow-Origin&amp;quot;. For example, a header like this: Access-Control-Allow-Origin: *, https://mydomain.com will cause problems.&lt;br /&gt;
&lt;br /&gt;
This HTTP header is not valid, according to the specification you can only specify a domain or a &amp;quot;*&amp;quot;:&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin&lt;br /&gt;
&lt;br /&gt;
Please, review if you have a Proxy/Firewall/Web Server adding automatically values to that HTTP header.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Security rules are blocking requests using the Accept-Charset header&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some security rules, such as OWASP ModSecurity, are blocking requests with this header that is sent by the Moodle App. In future releases of the app, this problem will be fixed. But in the meantime, you should disable it. Find more about this in MOBILE-4342.&lt;br /&gt;
=== My certificate is fine but the Moodle app is detecting http instead of https ===&lt;br /&gt;
If the Moodle app is detecting http instead of https, please revise config.php (check &amp;quot;wwwroot&amp;quot; as well as &amp;quot;httpswwwroot&amp;quot;)&lt;br /&gt;
===After updating Moodle LMS to a recent version my users cannot login===&lt;br /&gt;
This only applies to sites that are configured to use log in via an embedded browser pointing to their Moodle site.&lt;br /&gt;
This behaviour could be related to this Moodle LMS issue: https://tracker.moodle.org/browse/MDL-81897.&lt;br /&gt;
There are several ways to fix this issue:&lt;br /&gt;
# Upgrade their Moodle site to any of the indicated version in the issue that will solve the problem&lt;br /&gt;
# Manually apply the patch here: https://github.com/jleyva/moodle/compare/462d5f04a8...MDL-81897-master&lt;br /&gt;
# Immediate workaround: Change the app authentication so it will launch in a separate browser, by going to Site admin &amp;gt; Mobile app authentication &amp;gt; Type of login (and select the option that mentions external/system browser), remember to Save Changes&lt;br /&gt;
We’d recommend doing 3) that will immediately address the issue that is affecting new logins.&lt;br /&gt;
===I can&#039;t get the app to work. What can I do?===&lt;br /&gt;
Assuming you have enabled mobile services on your site (please visit [[Moodle app guide for admins]]), please check:&lt;br /&gt;
# If your site uses an SSL certificate, it must be a trusted certificate, not self-signed. Please use these tools or a similar one to check that your certificate is valid: [https://www.sslshopper.com/ssl-checker.html SSL Checker], [https://www.geocerts.com/ssl_checker SSL Checker], and [https://www.ssllabs.com/ssltest/analyze.html SSL Server Test]. All the checks must be ok, including the &amp;quot;Certificate Chain Complete&amp;quot;. Otherwise the app might work on iOS but not on Android.&lt;br /&gt;
# Make sure that the &amp;quot;Access-Control-Allow-Origin&amp;quot; header only contains one item. For example, a header like this: Access-Control-Allow-Origin: *, &amp;lt;nowiki&amp;gt;https://mydomain.com&amp;lt;/nowiki&amp;gt; will cause problems.&lt;br /&gt;
# [[Debugging]] is disabled (in &#039;&#039;Site administration &amp;gt; Development &amp;gt; Debugging&#039;&#039;)&lt;br /&gt;
# The ADOdb debug option is disabled if you are using the external database auth or enrolment plugin (in &#039;&#039;Plugins &amp;gt; Authentication &amp;gt; External database&#039;&#039; and in &#039;&#039;Plugins &amp;gt; Enrolment &amp;gt; External database&#039;&#039;).&lt;br /&gt;
# SHA-1 https certificates are not supported anymore in Chrome, this means that the Android version of the app won&#039;t work for your site. If your site doesn&#039;t work in desktop Chrome or Chromium it won&#039;t work in the Android app. See https://blog.chromium.org/2014/09/gradually-sunsetting-sha-1.html for more information&lt;br /&gt;
# If you are using IIS check that Anonymous access is not disabled for the /webservice directory.&lt;br /&gt;
# If you are using a web application firewall like AWS WAF, StackPath, Barracuda, Cloudflare, Juniper, etc... try to temporary disable it to check if that&#039;s the cause. If so, you&#039;ll have to whitelist these endpoints: login/token.php, webservice/*, lib/ajax/*, media/player/vimeo/wsplayer.php and /tokenpluginfile.php&lt;br /&gt;
You can also add WAF rules to allow traffic by detecting the app user agent such as: (http.user_agent contains &amp;quot;MoodleMobile&amp;quot;)&lt;br /&gt;
If you still have a problem, please post in the [https://moodle.org/mod/forum/view.php?id=7798 Moodle for mobile forum].&lt;br /&gt;
&lt;br /&gt;
If the issue started after updating Moodle LMS please visit [https://docs.moodle.org/en/Moodle_app_FAQ#After_updating_Moodle_LMS_to_a_recent_version_my_users_cannot_login After updating Moodle LMS to a recent version my users cannot login].&lt;br /&gt;
&lt;br /&gt;
=== I cannot access with old users, but I can with recently created ones! ===&lt;br /&gt;
Please, do a &amp;quot;Purge all caches&amp;quot; via the Moodle administration settings, this will solve the problem.&lt;br /&gt;
===I can&#039;t view the courses tab as an administrator===&lt;br /&gt;
The Moodle app only displays courses you are enrolled in. If you want to view a course as an admin, you need to enrol in it.&lt;br /&gt;
===My Moodle site uses a SSO auth method (Shibboleth, Google OAuth, etc) and the app is not working===&lt;br /&gt;
See the section &#039;Mobile authentication&#039; in the [[Moodle app guide for admins]] for details of how to configure it.&lt;br /&gt;
&lt;br /&gt;
If configured the app is still not connecting: If your site uses an SSL certificate, it must be a trusted certificate, not self-signed. Please use this tool or a similar one to check that your certificate is fine: [https://www.geocerts.com/ssl_checker SSL Checker]. All the checks must be OK, including the &amp;quot;Certificate Chain Complete&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If your SSO method is unable to authenticate when using an &amp;quot;embedded browser&amp;quot; (it gives an authentication error), please check if it works with a &amp;quot;browser window&amp;quot;. If it does work with the browser window then it means your SSO is performing an HTTP redirect, and these kind of redirects aren&#039;t supported by the app (the request is redirected by the browser not passing the POST parameters). Unfortunately, this is something we cannot control in the Mobile app (it can&#039;t be handled via JavaScript). For further information, see http://stackoverflow.com/questions/228225/prevent-redirection-of-xmlhttprequest and http://stackoverflow.com/questions/4168784/ajax-redirection-handling&lt;br /&gt;
&lt;br /&gt;
There are only 2 possible solutions: set the authentication via a &amp;quot;browser window&amp;quot; instead of an embedded one (please notice this won&#039;t work in the Linux desktop app), or remove the redirect from the SSO auth method.&lt;br /&gt;
&lt;br /&gt;
===SSO is not working with my custom auth plugin===&lt;br /&gt;
SSO should work in any plugin if the plugin handles correctly the $SESSION-&amp;gt;wantsurl, this is the way SSO works when it is launched via the app:&lt;br /&gt;
* It launchs this URL https://yourmoodle/admin/tool/mobile/launch.php?service=local_mobile&amp;amp;passport=abc in the device browser &lt;br /&gt;
* If the user is not logged in, the browser will redirect the user to the login page&lt;br /&gt;
* If the auth plugin used implements correctly the handling of the wantsurl session var, once the user has logged in, the browser should redirect back to the https://yourmoodle/admin/tool/mobile/launch.php?service=local_mobile&amp;amp;passport=abc URL that will launch the mobile app via the custom URL protocol&lt;br /&gt;
Custom auth plugins may be failing in the last step,not redirecting back to tool/mobile, this will happen only if the plugin does not support correctly the $SESSION-&amp;gt;wantsurl.&lt;br /&gt;
&lt;br /&gt;
The SAML plugin works correctly but some modifications of that plugin may not work if important lines are changed.&lt;br /&gt;
===I am having problems requesting an airnotifier access key===&lt;br /&gt;
If you have registered your site but are still unable to request an access key, please register your site on the Moodle Apps Portal https://apps.moodle.com once your site is registered there, an Airnotifier access key will be automatically generated for you.&lt;br /&gt;
=== Push notifications are not working ===&lt;br /&gt;
Please check [[Mobile app notifications#Troubleshooting]]&lt;br /&gt;
=== How notifications icon badges are updated ===&lt;br /&gt;
&#039;&#039;&#039;Android&#039;&#039;&#039;: Not all Android devices support icon badges so in some cases badges will never display numbers, also, depending on the device only a badge indicating that there are new notifications will be displayed when receiving a Push notification when the app is not in the foreground.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;iOS&#039;&#039;&#039;: The icon badge counter is only updated when the app is open and it will reflect the number of notifications pending reading or the number of message senders that sent you a message you have not read yet&lt;br /&gt;
&lt;br /&gt;
In general, for iOS the icon badge displayed number should match the one displayed at the bottom of the app (or it should be the sum of the notifications and messages badges) and is not an indicator of the number of Push notifications the user has received, it acts as a reminder of pending notifications to be read that only gets updated when the user open the apps&lt;br /&gt;
&lt;br /&gt;
There is an open issue to improve the behaviour on iOS, please watch MDL-73707&lt;br /&gt;
=== I configured &#039;QR code access&#039; to automatic login, but the app still asks for credentials  ===&lt;br /&gt;
Automatic authentication only works for Premium sites. You can see the app plans [https://moodle.com/app/ in this site].&lt;br /&gt;
&lt;br /&gt;
If you&#039;re getting an error saying that the device you&#039;re using to connect isn&#039;t in the same network as the device that displays the QR code but both devices are connected to the same network, please check the section: [[#ipmismatch:_.27Client_IP_address_mismatch.27|ipmissmatch: &#039;Client IP address mismatch&#039;]].&lt;br /&gt;
&lt;br /&gt;
=== I can log in on my Moodle site but I see a blank page or the app styles broken ===&lt;br /&gt;
This is usually because your Moodle site has a customised CSS. &lt;br /&gt;
&lt;br /&gt;
Please try leaving empty CSS (&#039;&#039;mobilecssurl&#039;&#039;) on Site administration &amp;gt; Mobile app &amp;gt; Mobile appearance. If that works, please read [https://docs.moodle.org/dev/Moodle_App_Remote_Themes Moodle App Remote Themes] and create a new CSS file using the variables mentioned there&lt;br /&gt;
&lt;br /&gt;
===The Moodle app does not connect to MoodleBox (or other internal self-hosted systems)===&lt;br /&gt;
You will need to disable SSL to make the app works, please see this forum discussion for more information: https://moodle.org/mod/forum/discuss.php?d=424353#p1739474&lt;br /&gt;
===I think I found a bug with the app. Where can I report it?===&lt;br /&gt;
# Log in to the [https://tracker.moodle.org/browse/MOBILE Moodle Mobile tracker] (you&#039;ll need to [http://tracker.moodle.org/secure/Signup%21default.jspa create a tracker account] if you&#039;ve not done so previously)&lt;br /&gt;
# Check whether the issue has already been reported by doing a [https://tracker.moodle.org/issues/?jql=project%20%3D%20MOBILE search]&lt;br /&gt;
# If not, report the bug by clicking the &#039;Create Issue&#039; link at the top right of the page, selecting &#039;Moodle app&#039; as the project&lt;br /&gt;
# Add a detailed description providing as much information as possible (Moodle version, app version, device model and operating system, etc...), then click the Create button&lt;br /&gt;
===How can I get the app in my language?===&lt;br /&gt;
[[File:setting the app lang.png|thumb|100px|Setting your language]]&lt;br /&gt;
The Moodle app automatically detects your mobile&#039;s language and displays in the same language (if the translation exists). Otherwise, you can set the app language in App settings &amp;gt; General.&lt;br /&gt;
&lt;br /&gt;
See also a post explaining how multi-lang works in the Moodle app: [https://moodle.org/mod/forum/discuss.php?d=453445#p1825637 Re: Language selector missing in Moodle app]&lt;br /&gt;
&lt;br /&gt;
If the Moodle app is not yet available in your language, please contribute a translation! See [https://docs.moodle.org/dev/Translating%20Moodle%20Mobile Translating Moodle Mobile] for details of what to do.&lt;br /&gt;
&lt;br /&gt;
=== Changes made to a Moodle site URL can cause logged-in users’ data to fail when synchronising. ===&lt;br /&gt;
We recommend that administrators manually log out all users after a site rename. If your site URL changes and have site users that are using the mobile Moodle App we suggest the following:&lt;br /&gt;
* For users that have not yet logged in - we recommend sending them the new URL&lt;br /&gt;
*   For users already using the mobile Moodle App and potentially logged in request them to:&lt;br /&gt;
** log out of the mobile Moodle App,&lt;br /&gt;
** delete the old site, and&lt;br /&gt;
** log in using the new URL&lt;br /&gt;
Logged in Moodle users can continue working with the previous URL (with cached information) but they will not be able to synchronise the new information (therefore not receiving new information from their teachers, and teachers not receiving data or submissions from those students).&lt;br /&gt;
* To avoid the risk of data not synchronising, we recommend the site administrator logs out all app users, by manually deleting their tokens:&lt;br /&gt;
** Go to Site administration&lt;br /&gt;
** Click Server &lt;br /&gt;
** Click Web services &lt;br /&gt;
** Click Manage tokens &lt;br /&gt;
** Delete the tokens&lt;br /&gt;
Take into account that you still need to request your users to log in using the new URL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Embedded content is not working ===&lt;br /&gt;
&lt;br /&gt;
This could be caused because your site is using a Content-Security-Policy that is preventing the app from embedding content.&lt;br /&gt;
&lt;br /&gt;
You can easily detect this when an error like this is displayed (javascript console): Refused to load URL because it does not appear in the frame-ancestors directive of the Content Security Policy.&lt;br /&gt;
&lt;br /&gt;
If that&#039;s the case, you&#039;d need to add the following elements: http://localhost moodleappfs://localhost at the end of the &amp;quot;Content-Security-Policy&amp;quot; HTTP header:&lt;br /&gt;
&lt;br /&gt;
An example of a CSP allowing embedding Vimeo videos in the site and content in the app:&lt;br /&gt;
Content-Security-Policy: frame-ancestors &#039;self&#039; https://*.vimeocdn.com https://*.vimeows.com https://*.vimeo.com http://localhost moodleappfs://localhost ;&lt;br /&gt;
&lt;br /&gt;
Other type of embedded content that does not work is content hosted by Microsoft tools that require session or any type of authentication, such as SharePoint content.&lt;br /&gt;
&lt;br /&gt;
=== Some activities are displayed incorrectly (blank, just a vertical line, ..) on the app ===&lt;br /&gt;
Please visit the forum post [[https://moodle.org/mod/forum/discuss.php?d=461909#p1854918| Some lesson activities do not display at all]].&lt;br /&gt;
&lt;br /&gt;
==Error messages==&lt;br /&gt;
=== &#039;Coding error: version.php file is missing for the component&#039; ===&lt;br /&gt;
This error message indicates that that plugin is not correctly installed (or uninstalled) on the Moodle site you use (see [[Installing plugins]]). Please review the mod/certificate folder to check if the version.php file is missing (or has incorrect permissions) as well as purge cache too.&lt;br /&gt;
=== &#039;Can not find data record in database table external_functions&#039; ===&lt;br /&gt;
This error usually happens due to a bad configuration or setting value in your Moodle site, please check:&lt;br /&gt;
# The user quota global setting should be an integer. For more details, see the discussion [https://moodle.org/mod/forum/discuss.php?d=320873 How to enable Moodle Mobile App for all accounts].&lt;br /&gt;
# The &#039;&#039;usermaxuploadfilesize&#039;&#039; should be an integer, please try to decrease the size. It can be configured in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; Site Policies &amp;gt; Maximum uploaded file size&#039;&#039;. The default value (Site upload limit) depends on the PHP configuration, you might have to change the value of &#039;&#039;upload_max_filesize&#039;&#039; and &#039;&#039;post_max_size&#039;&#039; in your &#039;&#039;php.ini&#039;&#039; file.&lt;br /&gt;
# The user &amp;quot;lang&amp;quot; field in the database is set to a correct value and existing language installed in the site. Some times the lang field is set via external systems to incorrect values or pointing to a language pack that was uninstalled. Please, note that to fix this you need direct access to the database and your &#039;user&#039; and &#039;course&#039; table.&lt;br /&gt;
===&#039;Cannot connect: Verify that you have typed correctly the URL and that your site uses Moodle 3.5 or later&#039;===&lt;br /&gt;
Take into account that the app will only connect to Moodle LMS sites version 3.5 onward.&lt;br /&gt;
Please also check:&lt;br /&gt;
# Mobile services are enabled for the site.&lt;br /&gt;
# The user is entering the correct URL for the site (see FAQ above)&lt;br /&gt;
# For https sites, the certificate is valid (see FAQ above)&lt;br /&gt;
===&#039;Invalid Moodle site version. The Moodle app only supports Moodle systems 3.5 onwards&#039;===&lt;br /&gt;
The app will only connect to Moodle LMS sites version 3.5 onward (see [https://docs.moodle.org/35/en/Upgrading Upgrade to 3.5] as well as [[Upgrade overview]]).&lt;br /&gt;
===&#039;We lost connection; you need to reconnect. Your token is now invalid.&#039; on my custom version of the Moodle app ===&lt;br /&gt;
Please check:&lt;br /&gt;
# You have followed all the steps listed in [https://docs.moodle.org/dev/Moodle%20Mobile%20Developing%20a%20plugin%20tutorial Moodle Mobile Developing a plugin tutorial]&lt;br /&gt;
# You have enabled the [[Capabilities/moodle/webservice:createtoken|moodle/webservice:createtoken]] for the authenticated user&lt;br /&gt;
===&#039;No permission to create web service token for the service local_mobile&#039; when attempting to log in (any user that it is not an admin)===&lt;br /&gt;
Please check you have enabled the moodle/webservice:createtoken for the authenticated user or any global role you want to allow to use the mobile app&lt;br /&gt;
===&#039;No permission to create web service token for the service local_mobile&#039; when attempting to log in as an admin===&lt;br /&gt;
You need to create a token for the admin account (only) as follows:&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Web services &amp;gt; Manage tokens&#039;&#039;&lt;br /&gt;
# Click Add&lt;br /&gt;
# Enter the admin username and select &#039;Moodle app additional features service&#039; (i.e. do NOT leave it as &#039;Moodle app web service&#039;)&lt;br /&gt;
# Click the &#039;Save changes&#039; button.&lt;br /&gt;
===&#039;Invalid response value detected&#039; when accessing the site ===&lt;br /&gt;
The user quota global setting should be an integer. For more details, see the discussion [https://moodle.org/mod/forum/discuss.php?d=320873 How to enable Moodle Mobile App for all accounts].&lt;br /&gt;
=== &#039; Invalid response value detected: Invalid external api response: the value is &amp;quot;&amp;quot;, the server was expecting &amp;quot;raw&amp;quot; type&amp;quot; ===&lt;br /&gt;
This usually happens when there is a field with value NULL in a table in the database that should not be there. This may happen if your Moodle has been upgraded over many years and the database schema is broken.&lt;br /&gt;
&lt;br /&gt;
To fix it, you can do the following: &lt;br /&gt;
* Detect the field that is causing the problem (it should be indicated before the error message)&lt;br /&gt;
* Fix the field, for example, for the password field in the lesson table: UPDATE mdl_lesson SET password = &#039;&#039; WHERE password IS NULL (remember that your table prefix can be different than mdl_)&lt;br /&gt;
===&#039;Invalid response value detected&#039; when accessing My Courses or Course Overview ===&lt;br /&gt;
This usually happens when a course uses a language that isn&#039;t installed in the site. Please make sure that all courses use valid languages. This can be easily checked in the database, table &amp;quot;course&amp;quot;, there is a column named &amp;quot;lang&amp;quot;.&lt;br /&gt;
===&#039;A required parameter (username) was missing&#039;===&lt;br /&gt;
This may happen if your site implements HTTP redirects; the request is redirected by the browser not passing the POST parameters.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, this is something we cannot control in the Mobile app (it can&#039;t be handled via JavaScript). For further information, see http://stackoverflow.com/questions/228225/prevent-redirection-of-xmlhttprequest and http://stackoverflow.com/questions/4168784/ajax-redirection-handling&lt;br /&gt;
&lt;br /&gt;
The solution is to change the HTTP redirect and use an HTML page with a meta tag or JavaScript redirect.&lt;br /&gt;
===&#039;Cannot get course contents&#039;===&lt;br /&gt;
This usually happens when the course is using a course format plugin that was uninstalled from the server or that was not properly installed.&lt;br /&gt;
&lt;br /&gt;
Please, reinstall again the course format plugin.&lt;br /&gt;
===&#039;Access control exception&#039; or &#039;Your authentication token is invalid or has expired&#039;===&lt;br /&gt;
Please double-check that &#039;Enable web services for mobile devices&#039; (&#039;&#039;enablemobilewebservice&#039;&#039;) is actually enabled. (It might be unabled if for example you have reseted some roles.)&lt;br /&gt;
&lt;br /&gt;
If this error appears as soon as you enter the username and password for a new site, then it probably means that the token expiration time is badly configured. This is how to fix it:&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Security &amp;gt; Site security settings&#039;&#039;.&lt;br /&gt;
# Find the setting named &#039;&#039;User created token duration&#039;&#039;.&lt;br /&gt;
# If the value is set to 0 or it&#039;s too low, please set it back to a valid value (the default value is 12 weeks).&lt;br /&gt;
# Click the &#039;Save changes&#039; button.&lt;br /&gt;
&lt;br /&gt;
===ipmismatch: &#039;Client IP address mismatch&#039;===&lt;br /&gt;
This error can appear when a user opens your site in a browser while using the app. This happens if your site is behind a proxy and you&#039;re using one of these Moodle versions o higher: 3.5.11, 3.6.9, 3.7.5, 3.8.2, 3.9.0.&lt;br /&gt;
&lt;br /&gt;
To fix it:&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Administration &amp;gt; Server &amp;gt; HTTP&#039;&#039;.&lt;br /&gt;
# Find the setting named &#039;&#039;Ignore reverse proxies&#039;&#039; (reverseproxyignore).&lt;br /&gt;
# Enter the IP of your proxy (or range of IPs).&lt;br /&gt;
# Click the &#039;Save changes&#039; button.&lt;br /&gt;
If you are still experiencing issues please try to change this setting &amp;quot;getremoteaddrconf&amp;quot; (Logged IP address source) to the different existing values.&lt;br /&gt;
&lt;br /&gt;
Finally, it is possible to disable the IP restriction checks for functionality such as the QR login, to do that, go to Site administration &amp;gt; Mobile app &amp;gt; Mobile app authentication, and disable the &amp;quot;QR authentication same IP check&amp;quot; setting.&lt;br /&gt;
=== &#039;The param &amp;quot;includestealthmodules&amp;quot; is invalid&#039; ===&lt;br /&gt;
Please contact your learning organisation so they upgrade to at least Moodle 3.5.3 (see [https://docs.moodle.org/35/en/Upgrading Upgrade to 3.5] as well as [[Upgrade overview]]) or they manually apply the patch listed here [[MDL-63542]].&lt;br /&gt;
&lt;br /&gt;
==Older versions of the Moodle app==&lt;br /&gt;
We always recommend using the last version of the Moodle App but some times users are still using older versions this is the reason we are keeping this list:&lt;br /&gt;
&lt;br /&gt;
=== Some users are asked to reauthenticate too often when they browse the site (Moodle App &amp;lt;3.9.3) ===&lt;br /&gt;
This can happen if the app is sending too many variables to a WebService, e.g. because a course has a large number of sections and/or activities. This error was fixed in the 3.9.3 version of the app, but if you are using an older version of the app you can increase the value of &#039;&#039;max_input_vars&#039;&#039; in &#039;&#039;php.ini&#039;&#039; to fix it in your server.&lt;br /&gt;
&lt;br /&gt;
=== After upgrading to 3.9.5 some of my plugins have stopped working ===&lt;br /&gt;
The Moodle App 3.9.5 version came with some breaking changes for plugins, most of the existing plugins have been updated to support the new changes.&lt;br /&gt;
Please check the following list of plugins that should work for 3.9.5 once you have upgraded to the latest version indicated in the document: https://docs.google.com/spreadsheets/d/1E9PqcUBpp9SAfQc_zJtX5tf9GeS3UN76A85IrrB4UDw/edit#gid=0&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7798 Moodle for mobile forum] on moodle.org.&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[de:Moodle Mobile - FAQ]]&lt;br /&gt;
[[ca:Moodle Mobile FAQ]]&lt;br /&gt;
[[es:Moodle app FAQ]]&lt;br /&gt;
[[fr:Moodle pour les mobiles]]&lt;br /&gt;
[[ja:バイルMoodle FAQ]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_notifications&amp;diff=154585</id>
		<title>Moodle app notifications</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_notifications&amp;diff=154585"/>
		<updated>2025-11-06T07:34:03Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
&lt;br /&gt;
==For students and teachers==&lt;br /&gt;
[[File:12Notifications.png|thumb|Forum post notification]]&lt;br /&gt;
The Moodle mobile app lets you keep up to date with all that&#039;s happening in your courses and on the site. Every time you open the app, events are synchronised with the website.&lt;br /&gt;
&lt;br /&gt;
You will receive [[Calendar|Moodle calendar]] event notifications automatically. If you don&#039;t want to get them, you can turn them all off individually (or globally) in the Calendar events options in the main menu.&lt;br /&gt;
&lt;br /&gt;
You will also receive notifications of messages, forum posts, submitted assignments etc. (known as &#039;push notifications&#039;) if your site administrator has enabled these. To receive these notifications you need to enable them EITHER via the app OR via the website.&lt;br /&gt;
&lt;br /&gt;
To enable mobile notifications via the app:&lt;br /&gt;
&lt;br /&gt;
# Go to the app settings then Notification preferences&lt;br /&gt;
# Move the slider so that disable notifications is off&lt;br /&gt;
# Move the slider to turn on notifications for assignment, feedback, forum etc. as required&lt;br /&gt;
&lt;br /&gt;
To enable mobile notifications via the website:&lt;br /&gt;
&lt;br /&gt;
# Go to your user menu (top right of each page) and select Preferences&lt;br /&gt;
# Click the link &#039;Notification preferences&#039;&lt;br /&gt;
# Click to turn on notifications for assignment, feedback, forum etc. as required&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| [[File:notification preferences app.png|thumb|Notification preferences in the app]]&lt;br /&gt;
| [[File:notification preferences web.png|thumb|Notification preferences on website]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==For administrators==&lt;br /&gt;
&lt;br /&gt;
Push notifications can be enabled by an administrator by connecting their Moodle site to a messaging server such https://messages.moodle.net (available for [[Site registration|registered Moodle sites]] only). An access key can be obtained via &#039;&#039;Site administration &amp;gt; General &amp;gt; Messaging &amp;gt; Notification settings&#039;&#039;; be sure the &#039;Mobile&#039; is enabled and then click the link to settings, on the next page select &#039;&#039;Request access key&#039;&#039;. (For Moodle site versions 3.5 and 3.6 an access key can be obtained via &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Message outputs &amp;gt; Manage message outputs&#039;&#039;. Then by clicking the link to the Mobile settings, on the next page select &#039;&#039;Request access key&#039;&#039;.)&lt;br /&gt;
&lt;br /&gt;
Note that from 2 April 2020, there will be certain limitations when using push notifications. Depending on the size of your site and the number of user devices receiving notifications, you may need to sign up to a Premium plan in the Moodle Apps portal: https://apps.moodle.com. For further information, see the official announcement [https://moodle.org/mod/forum/discuss.php?d=397926 Introducing our new Moodle App plans].&lt;br /&gt;
&lt;br /&gt;
You can enable by default Mobile notifications for your students, please read the &amp;quot;Default message outputs&amp;quot; section in [[Messaging settings]].&lt;br /&gt;
&lt;br /&gt;
If you have problems requesting the access key, please register your site on the Moodle Apps Portal https://apps.moodle.com once your site is registered there, an Airnotifier access key will be automatically generated for you.&lt;br /&gt;
&lt;br /&gt;
Users then need to connect at least once with the latest version of the Moodle Mobile app in order to register their phones with the Moodle site.&lt;br /&gt;
&lt;br /&gt;
=== Encrypted Push Notifications ===&lt;br /&gt;
&lt;br /&gt;
Encrypted push notifications are available in Moodle LMS 4.1.4 and later, and in Moodle App 4.2 and later.&lt;br /&gt;
&lt;br /&gt;
To enable encrypted push notifications, go to Site administration &amp;gt; Messaging &amp;gt; Mobile and select ‘Encrypt notifications’.&lt;br /&gt;
&lt;br /&gt;
When encrypted notifications are enabled, any information or data in the notifications that could potentially identify a user is encrypted using the Curve25519/X25519 encryption algorithm. This guarantees full compliance with GDPR for organisations that want to prevent their data from being transmitted without encryption through any processing server.&lt;br /&gt;
&lt;br /&gt;
The generated key pair (public and private) used to encrypt notifications is securely stored in the keystore or keychain of each device that receives notifications from your site.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Limitations of encrypted push notifications&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* At least Android 8 or iOS 13 are required on devices receiving notifications. Older versions of these systems are not supported.&lt;br /&gt;
* Rich push notifications (notifications with media attachments) are not supported.&lt;br /&gt;
* Some notifications may not redirect to the appropriate page or section within the app.&lt;br /&gt;
* If the size of the notification content is too big, it will be replaced with the message ‘Tap to view text’.&lt;br /&gt;
* For iOS devices only: If the Moodle App is not in the background or foreground of devices, some notifications might not be received. This is a native iOS limitation and is based on a number of factors, such as devices’ CPU usage, notifications’ priority level (data-only messages are considered ‘low priority’ by iOS), battery level, etc. You can read additional technical information in this discussion: https://github.com/firebase/flutterfire/issues/9300.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Troubleshooting&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* After upgrading your Moodle site to a version that supports encrypted push notifications (Moodle LMS 4.1.4 or later), it’s important to note that your users will only start receiving encrypted notifications once they access your upgraded site through their Moodle App for the first time.&lt;br /&gt;
* To verify if a device supports encrypted push notifications, follow these steps:&lt;br /&gt;
# Open the Moodle App and access the &#039;More&#039; menu (represented by three dots).&lt;br /&gt;
# Select &#039;App settings&#039; and then choose &#039;About&#039;.&lt;br /&gt;
# On the &#039;About&#039; page, tap on the App version (Moodle Mobile X.X) at the bottom.&lt;br /&gt;
# A new page titled &#039;Device info&#039; will appear.&lt;br /&gt;
# Scroll to the bottom of the &#039;Device info&#039; page to locate the section ‘Encrypted push notifications supported.’&lt;br /&gt;
Please note that this indicates whether a device can support encrypted push notifications, but it doesn’t necessarily mean that they have been enabled on a specific Moodle site.&lt;br /&gt;
&lt;br /&gt;
=== Event Reminders plugin===&lt;br /&gt;
&lt;br /&gt;
Push notifications can also include calendar event notifications, however this requires the [https://moodle.org/plugins/view/local_reminders Event Reminders plugin] to be installed on the Moodle site.&lt;br /&gt;
&lt;br /&gt;
The Event Reminders plugin will automatically send reminders for Moodle calendar events in a timely manner via Moodle message interface. It also allows users to control how they receive messages for each type of event in the Moodle calendar.&lt;br /&gt;
&lt;br /&gt;
=== Installing your own notifications infrastructure ===&lt;br /&gt;
&lt;br /&gt;
If you have a customized version of the Moodle Mobile app, or you want to use your own notifications infrastructure, you will have to install a private [http://airnotifier.github.io AirNotifier] (backend server for notifications).&lt;br /&gt;
&lt;br /&gt;
Please notice that Moodle HQ does not maintain or offer any support for any Airnotifier-related issues. Moodle HQ has funded and contributed with some fixes to this software but it is not officially maintaining or supporting it.&lt;br /&gt;
&lt;br /&gt;
Moodle offers a branded app service including a private notifications infrastructure, for more information visit https://moodle.com/mobileapp/&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
If your users are not receiving push notifications please check:&lt;br /&gt;
&lt;br /&gt;
* You have not exceeded the maximum number of active devices according to your Moodle App Plan. You can register for free on https://apps.moodle.com to check your current active user devices to check if you need to upgrade to a [https://apps.moodle.com/local/apps/signup_site.php?plan=premium&amp;amp;origin=moodledocs Premium plan].&lt;br /&gt;
* You have entered an Airnotifier access key in the Mobile settings in the Site administration&lt;br /&gt;
* Mobile is enabled in Messaging &amp;gt; Notification settings in the Site administration&lt;br /&gt;
* In your config.php, $CFG-&amp;gt;noemailever is not set to true (or it does not exist)&lt;br /&gt;
* Any user not receiving notifications has enabled mobile notifications in the mobile app in App settings &amp;gt; Notification preferences then check that &amp;quot;Disable notifications&amp;quot; is not selected&lt;br /&gt;
* Any user not receiving notifications has enabled the type of notifications they want to receive in App settings &amp;gt; Notification preferences&lt;br /&gt;
* Any user not receiving notifications hasn&#039;t disabled his current device in App settings &amp;gt; Notification preferences &amp;gt; 3 dots menu &amp;gt; Configure devices&lt;br /&gt;
* Mobile notifications are not disallowed by an administrator in &#039;Default message outputs&#039; in the Site administration&lt;br /&gt;
* Mobile notifications are enabled in the user&#039;s Android phone (Settings &amp;gt; Apps &amp;gt; Moodle Mobile &amp;gt; Show notifications ticked) or iOS phone (in iOS in Settings -&amp;gt; Moodle Mobile &amp;gt; Notifications)&lt;br /&gt;
* The server where your Moodle site is installed is able to connect to messages.moodle.net (port 443) via telnet&lt;br /&gt;
* You are using the Moodle Mobile official app. If you are using a custom/branded app for your institution, please contact your institution since custom apps need their own notifications infrastructure (see above).&lt;br /&gt;
* Your Moodle installation cron jobs are not locked. You can check it executing the CRON manually and reading the output, more info [https://moodle.org/mod/forum/discuss.php?d=361595 here]&lt;br /&gt;
&lt;br /&gt;
=== Testing push notifications ===&lt;br /&gt;
&lt;br /&gt;
To test push notifications:&lt;br /&gt;
&lt;br /&gt;
# Ensure that mobile notifications are enabled (as described above).&lt;br /&gt;
# Go to a course and create a forum with forced subscription.&lt;br /&gt;
# Log in as a student and create a new discussion in the forum.&lt;br /&gt;
# As the same student, log in on the mobile app, go to App settings &amp;gt; Notification preferences &amp;gt; Forum and enable all the notifications.&lt;br /&gt;
# In the same page, check that at the top of the page you see &amp;quot;You are configuring Mobile notifications&amp;quot;. If it says &amp;quot;You are configuring notifications for web (or email)&amp;quot;, switch to mobile via the three dots menu at the top right.&lt;br /&gt;
# In the same page, tap the three dots menu (top right), go to Configure devices and check that your current device is enabled.&lt;br /&gt;
# Now, put the Moodle Mobile app in background (switching to a different app or going to your device home).&lt;br /&gt;
# Log in to the site (on the web) and post a reply to the discussion started by the student., ticking the option &amp;quot;Send forum post notifications with no editing-time delay&amp;quot;.&lt;br /&gt;
# Verify that the student receives a push notification on their mobile device.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://docs.moodle.org/en/Moodle_app_FAQ#I_don.27t_receive_calendar_notifications_.28reminders.29_when_using_Android_12_or_above I don&#039;t receive calendar notifications (reminders) when using Android 12 or above]&lt;br /&gt;
* [https://docs.moodle.org/en/Moodle_app_FAQ#How_notifications_icon_badges_are_updated How notifications icon badges are updated]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[de:Moodle App - Systemnachrichten]]&lt;br /&gt;
[[ca:Notificacions de la app Mobile]]&lt;br /&gt;
[[es:Mobile app Notificaciones Push]]&lt;br /&gt;
[[fr:Notifications de l&#039;app mobile]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_FAQ&amp;diff=154505</id>
		<title>Moodle app FAQ</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_FAQ&amp;diff=154505"/>
		<updated>2025-10-23T09:27:16Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* H5P packages don&amp;#039;t work on my site */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
==Students==&lt;br /&gt;
===How can I log in?===&lt;br /&gt;
To log in to your Moodle site with the Moodle App, you need the URL (web address) of the Moodle site that you’re trying to access. If your organisation has Search enabled, you can try searching by the name of your organisation or eLearning site.&lt;br /&gt;
&lt;br /&gt;
If your organisation allows you to log in via QR code, you’ll find the QR code at the bottom of your user profile on your Moodle site. You just need to press “Scan QR code” on the app, scan the QR code on your profile and you’ll be logged in automatically.&lt;br /&gt;
&lt;br /&gt;
If your organisation allows you to log in using face recognition or fingerprint, you can activate this in the App, going to User account &amp;gt; Preferences. You’ll need to have biometric authentication enabled in your own device’s settings. &lt;br /&gt;
===Who can I contact for help with the app?===&lt;br /&gt;
If you’re a student and need help with issues related to logging in, registering to a Moodle site or trouble connecting to the app, you should contact your school or learning organisation. For example, one of your teachers, or the person who takes care of Moodle.&lt;br /&gt;
Moodle HQ make the Moodle software and the Moodle app, but they don’t manage nor have access to your Moodle site or your user data.&lt;br /&gt;
===How can I get the Moodle app?===&lt;br /&gt;
You can download the Moodle App for free from [https://play.google.com/store/apps/details?id=com.moodle.moodlemobile Google Play] and the Apple [https://itunes.apple.com/app/moodle-mobile/id633359593?mt=8 App Store]. You will find it by searching “Moodle”, and the author/owner is “Moodle Pty Ltd”.&lt;br /&gt;
If you are unable to download the app from Google play, please visit [https://download.moodle.org/mobile/ Moodle app downloads]&lt;br /&gt;
===I can&#039;t get the app to work. ===&lt;br /&gt;
To ensure that the Moodle app functions properly, please double-check that you have correctly entered the URL address of the Moodle site you are using (please visit [https://docs.moodle.org/en/Moodle_app_FAQ#I_can%E2%80%99t_find_my_Moodle_site_in_the_app. I can’t find my Moodle site in the app]). If you are experiencing difficulties connecting to your site, please contact the person or team who takes care of Moodle in your school or learning organisation. Please note the app only works with Moodle sites that have been set up to allow it, and that are running on at least Moodle 3.5.&lt;br /&gt;
&lt;br /&gt;
===I can’t find my Moodle site in the app. ===&lt;br /&gt;
To find your Moodle site on the app login screen, try searching for the name of your school or learning organisation.&lt;br /&gt;
&lt;br /&gt;
If your school or organisation doesn’t appear in the search, you can try searching by your Moodle site URL address instead. If you don’t know the address of your Moodle site, here’s how you can find it:&lt;br /&gt;
# Open a web browser (like Chrome or Safari) and go to your school’s Moodle site login page.&lt;br /&gt;
# At the top of the page in the address bar, you&#039;ll see the URL address of your Moodle site, e.g. “campus.example.edu”. [[File:FAQ I cant find my site 1.png|alt=URL|thumb|none|&#039;&#039;campus.example.edu&#039;&#039;]]&lt;br /&gt;
# Copy the URL (don’t copy the /login nor what comes after), paste it into Your site in the app, then select Connect to your site. [[File:FAQ I cant find my site 2.png|alt=Adding an URL to the app|thumb|none|Adding an URL to the app]]&lt;br /&gt;
# Now you can log in to your site with your username and password.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you tried searching by URL address and still can’t find your Moodle site, please get in touch with the person who takes care of Moodle in your school or learning organisation.&lt;br /&gt;
===I can’t log in with the app===&lt;br /&gt;
To log in to your Moodle site using the app, you first need to connect to your school’s Moodle site (view [[I can’t find my Moodle site in the app]] if you can’t find your site).&lt;br /&gt;
&lt;br /&gt;
Once you’ve connected to your Moodle site, you should be able to log in with your usual username and password.&lt;br /&gt;
&lt;br /&gt;
If you forgot your username or password, select the option &#039;&#039;&#039;Forgotten your username or password?&#039;&#039;&#039;. If you still have trouble logging in or can’t see any options for retrieving your username or password, please get in touch with the person who takes care of Moodle in your school or learning organisation.&lt;br /&gt;
===I see an error message when I try to use the app===&lt;br /&gt;
If you see an error message that prevents you from using the app, please get in touch with the person who takes care of Moodle in your school or learning organisation. &lt;br /&gt;
&lt;br /&gt;
Some of the most common errors that your school or learning organisation will be able to fix are:&lt;br /&gt;
* Your token is expired or not valid.&lt;br /&gt;
* An error mentioning the parameter “includestealthmodules”.&lt;br /&gt;
* The web service function is not available.&lt;br /&gt;
* A message about site maintenance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you’re experiencing any of these errors, contact your school or learning organisation for help.&lt;br /&gt;
===What permissions does the app require?===&lt;br /&gt;
The app requires the following permissions:&lt;br /&gt;
* Record audio - for uploading to your Moodle site&lt;br /&gt;
* Read and modify the contents of your SD card - for content to be downloaded to your SD Card for offline access.&lt;br /&gt;
* Network access - to be able to connect with your Moodle site and check if you are connected, and if not to switch to offline mode.&lt;br /&gt;
* Run at startup - to receive local notifications even when the app is running in the background.&lt;br /&gt;
* Prevent phone from sleeping - to receive push notifications anytime.&lt;br /&gt;
===What are the minimum device requirements to use the Moodle app?===&lt;br /&gt;
Android devices: Require Android 7.0 or later. (Users with Android 5 and 6 can still use version 4.3, but they will not receive any new updates.)&lt;br /&gt;
&lt;br /&gt;
iOS devices (iPhones/iPads): Require iOS 13 or later. (Please note the app was only tested on versions iOS 14 and onward.)&lt;br /&gt;
&lt;br /&gt;
===I can&#039;t see my course on the app. What do I do?===&lt;br /&gt;
Check with your course tutor that you are correctly enrolled.&lt;br /&gt;
=== Why can&#039;t I upload my assignment on the app?===&lt;br /&gt;
If you’re experiencing any issue uploading assignment, please contact your school or learning organisation for help.&lt;br /&gt;
===Why can&#039;t I sometimes access the app or submit anything to it?===&lt;br /&gt;
This could be because of interruptions in your internet connection. Wait a while and try again. If you continue to have problems, contact your school or learning organisation for help.&lt;br /&gt;
===Is there a space limit on my files?===&lt;br /&gt;
Assignments will have a size limit which you can see, those are set by your teachers. For other space limit questions, check with your your school or learning organisation .&lt;br /&gt;
===When are activities completed offline synchronized?===&lt;br /&gt;
See [[Moodle app synchronization]].&lt;br /&gt;
===Why the site is asking for my username and password when an activity is opened in the browser?===&lt;br /&gt;
For security reasons, between auto-logins you must wait 6 minutes (this should not be a problem because most of the browsers will keep your Moodle session open).&lt;br /&gt;
In recent Moodle versions, the previous value can be configured in Site Administration &amp;gt; Mobile app authentication &amp;gt;  Minimum time between auto-login requests&lt;br /&gt;
&lt;br /&gt;
=== The Moodle app might seem slow (especially on Android devices) ===&lt;br /&gt;
If the app feels slow, it might be due to things outside the app itself. This can include:&lt;br /&gt;
* Slow internet connection&lt;br /&gt;
* Network problems&lt;br /&gt;
* The server responding slowly&lt;br /&gt;
* Content or settings not made for mobile&lt;br /&gt;
* Using the app on an old or slow device&lt;br /&gt;
&lt;br /&gt;
We test the app carefully on many sites before each release, and we’re confident it usually works as well as or better than the website.&lt;br /&gt;
&lt;br /&gt;
To make sure your site works well on mobile, please check [[Creating mobile-friendly courses]]&lt;br /&gt;
&lt;br /&gt;
Finally, to troubleshoot this problem, we recommend trying the application with our demo site: https://school.moodledemo.net. Simply use the username &amp;quot;student&amp;quot; and the relevant password to access the site. If you find that the navigation and overall experience with the app are improved, then the issue may be at the server level. In this case, we suggest contacting your school or learning organisation for further assistance.&lt;br /&gt;
&lt;br /&gt;
=== The Moodle app restarts/ closes / reopenes itself ===&lt;br /&gt;
This is likely because there are too many apps opened on your mobile device. Mobile devices have a finite amount of memory, and the device&#039;s memory manager is responsible for determining which applications to keep open and which to close.&lt;br /&gt;
To optimise your device&#039;s performance, we recommend closing all applications that are not currently in use. This will free up valuable memory and ensure that your device runs smoothly.&lt;br /&gt;
===I use LineageOS and I&#039;m having problems using the app===&lt;br /&gt;
LineageOS uses a different WebView implementation not compatible vith the app. You need to install &amp;quot;Android System WebView&amp;quot; from Google Play (or via a trusted apk) and enabling it via Settings &amp;gt; Developer options &amp;gt; WebView implementation.&lt;br /&gt;
===H5P packages and external content embedded via iframes are not working on iOS ===&lt;br /&gt;
This is caused by a new feature of iOS 14 called ITP that blocks cookies for external sites embedded in the app (the H5P content is played embedded in an iframe pointing to the Moodle website) unless the user enables a setting in the app to allow those cookies.&lt;br /&gt;
&lt;br /&gt;
The quick workaround is to enable the setting &amp;quot;Allow Cross-Website Tracking&amp;quot; available via the Settings app (look for the Moodle app, at the bottom) on your iPhone/iPad with iOS 14.&lt;br /&gt;
===I cannot reproduce audio that was recorded on browser on iOS devices (iPhones and iPads)===&lt;br /&gt;
This behaviour is related to this Moodle LMS bug: https://tracker.moodle.org/browse/MDL-80114&lt;br /&gt;
&lt;br /&gt;
=== I don&#039;t receive calendar notifications (reminders) when using Android 12 or above === &lt;br /&gt;
&lt;br /&gt;
In order to receive calendar notifications you need to allow alarms and reminders for the Moodle app. To do this:&lt;br /&gt;
* Open Android Settings and go to the Moodle app settings. Another way to reach these settings is by long-clicking the Moodle app icon and pressing &amp;quot;App info&amp;quot;.&lt;br /&gt;
* Make sure that Notifications are enabled.&lt;br /&gt;
* If you see a section called &amp;quot;Alarms &amp;amp; reminders&amp;quot;, make sure it is Allowed (this setting is disabled by default in Android 14+).&lt;br /&gt;
&lt;br /&gt;
==Teachers==&lt;br /&gt;
===How can I enable videos in my course to be downloaded?===&lt;br /&gt;
See the section &#039;Media download for offline usage&#039; in [[Creating Moodle-app-friendly courses]].&lt;br /&gt;
===Which course format is it best to use?===&lt;br /&gt;
Topics or weekly course format is best suited to mobile devices.&lt;br /&gt;
===How do I make YouTube links open automatically in the app?===&lt;br /&gt;
Add YouTube links as a [[URL resource]].&lt;br /&gt;
===Why can&#039;t my students see their courses?===&lt;br /&gt;
If you or an administrator have correctly enrolled them in a course, they can see it in their mobile app. If they are correctly enrolled but can still not see their course, ask them to check with your Moodle site administrator.&lt;br /&gt;
=== I can&#039;t mark assignments in the app===&lt;br /&gt;
If you are experiencing problems when grading, please review that you are using the correct decimal separators (if the app interface is in English, you must use a period).&lt;br /&gt;
===What communications tools can I use in the app to engage with my learners?===&lt;br /&gt;
See [[Mobile app notifications]]. Chat, forums and messaging are all supported by the app.&lt;br /&gt;
===My Vimeo videos are not playing in the app===&lt;br /&gt;
In older versions of Moodle (pre-Moodle 3.7), it may be necessary to activate the &amp;quot;Allow frame embedding&amp;quot; admin setting. However, for those using Moodle version 3.7 or later, it is important to check whether a Proxy/Firewall/Web Server security module is setting the X-Frame-Options header in your HTTP request responses. If this is the case, it is recommended to deactivate this feature as it may cause conflicts, as Moodle already sets this header by default. &lt;br /&gt;
&lt;br /&gt;
This setting is typically found in any of these configuration files .htaccess, httpd.conf or VirtualHost. To disable it, you can just use: Header always unset X-Frame-Options &lt;br /&gt;
&lt;br /&gt;
You may also use Bootstrap responsive classes: https://getbootstrap.com/docs/4.0/utilities/embed/, for example, &amp;lt;div class=&amp;quot;embed-responsive&amp;quot;&amp;gt;&lt;br /&gt;
For older versions, see this forum discussion with a workaround: https://moodle.org/mod/forum/discuss.php?d=327342&lt;br /&gt;
&lt;br /&gt;
If the issue is with vimeo videos on Moodle sites 3.10 or 3.11, please update the Moodle site to the latest version possible (at least 3.10.10 or 3.11.6). (See https://tracker.moodle.org/browse/MDL-74042)&lt;br /&gt;
===ReCaptcha doesn&#039;t work on my site===&lt;br /&gt;
In older versions of Moodle (pre-Moodle 3.7), it may be necessary to activate the &amp;quot;Allow frame embedding&amp;quot; admin setting. However, for those using Moodle version 3.7 or later, it is important to check whether a Proxy/Firewall/Web Server security module is setting the X-Frame-Options header in your HTTP request responses. If this is the case, it is recommended to deactivate this feature as it may cause conflicts, as Moodle already sets this header by default. &lt;br /&gt;
===H5P packages don&#039;t work on my site===&lt;br /&gt;
In older versions of Moodle (pre-Moodle 3.7), it may be necessary to activate the &amp;quot;Allow frame embedding&amp;quot; admin setting. However, for those using Moodle version 3.7 or later, it is important to check whether a Proxy/Firewall/Web Server security module is setting the X-Frame-Options header in your HTTP request responses. If this is the case, it is recommended to deactivate this feature as it may cause conflicts, as Moodle already sets this header by default. &lt;br /&gt;
&lt;br /&gt;
This setting is typically found in any of these configuration files .htaccess, httpd.conf or VirtualHost. To disable it, you can just use: Header always unset X-Frame-Options &lt;br /&gt;
&lt;br /&gt;
This can also happen when you are using the non-official H5P plugin (mod_hvp), in that case you will see the following message: This site is not configured properly for displaying mobile H5P content. Please contact a site administrator so they can apply the above suggested configuration changes.&lt;br /&gt;
&lt;br /&gt;
If you are using the non-official H5P plugin (mod_hvp) you can also try changing the plugin settings &amp;quot;Mobile rendering handler&amp;quot; and try the different options until you find the one that works for you. You might need to restart the app everytime you change the settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cookies issues&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If your site uses HTTPS please ensure that the &amp;quot;Secure cookies only&amp;quot; (cookiesecure) setting under Site administration &amp;gt; HTTP security is enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency errors&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the following error appears &amp;quot;Missing dependency H5P.Editor. something X required by H5P.Editor. something Y&amp;quot;. H5P packages need to include all the libraries (dependencies) they use so the package is self-contained. But sometimes packages might be missing at least one dependency.&lt;br /&gt;
&lt;br /&gt;
In order to fix this, you could do the following:&lt;br /&gt;
&lt;br /&gt;
Open Moodle’s Content Bank (from the link in the problematic H5P settings page) and upload your H5P package there, once uploaded, you will see the H5P package and an “Edit” button, click on that button so the editor opens, scroll down and click “Save”.&lt;br /&gt;
Now, you can replace the problematic H5P with this new one, for this, you can just include it from the Content bank by opening the activity settings page and the file picker.&lt;br /&gt;
&lt;br /&gt;
=== I use a Moodle plugin but the app says it is not supported ===&lt;br /&gt;
You should contact the plugin developer and point him to this documentation: https://docs.moodle.org/dev/Moodle_Mobile_Remote_addons where it is explained how to add support to plugins in the Mobile app.&lt;br /&gt;
&lt;br /&gt;
There is a list of Moodle plugins supported by the app here: https://moodle.org/plugins/browse.php?list=award&amp;amp;id=6&lt;br /&gt;
&lt;br /&gt;
To learn more about how the Moodle app works and how to make your plugins compatible, check out the intermediate-level Moodle Academy course [https://moodle.academy/enrol/index.php?id=71 Make Your Plugin Moodle App Compatible].&lt;br /&gt;
&lt;br /&gt;
=== I have problems playing SCORM packages ===&lt;br /&gt;
This might be caused because:&lt;br /&gt;
* The SCORM was added using an advanced option (remote imsmanifest.xml packages or file system repository unzipped SCORMS)&lt;br /&gt;
* The SCORM ZIP file was created using a tool that does not create standardised ZIP files (for example, zip files containing the inverted path separator &amp;quot;\&amp;quot; will not work on Android)&lt;br /&gt;
Please refer to [[Moodle app SCORM player]] for additional information.&lt;br /&gt;
=== My quizzes or lessons are not working offline ===&lt;br /&gt;
You need to edit the quiz or lesson activity settings and enable the &amp;quot;Allow lesson/quiz to be attempted offline using the mobile app&amp;quot; configuration option.&lt;br /&gt;
=== Maths notation is not displaying correctly in the app ===&lt;br /&gt;
If you are having issues with MathJax, please enable the [[TeX notation filter]] also.&lt;br /&gt;
&lt;br /&gt;
If you have both filters enabled, please leave MathJax above TeX so it is always processed before TeX.&lt;br /&gt;
&lt;br /&gt;
If the issue persists, we suggest disabling the &#039;Remove HTML tags from all activity names&#039; (&#039;&#039;formatstringstriptags&#039;&#039;) option in &#039;&#039;Site Administration&#039;&#039; &amp;gt; &#039;&#039;Appearance&#039;&#039; &amp;gt; &#039;&#039;HTML settings&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== How can I disable text selection / copy in the app? ===&lt;br /&gt;
You can create a remote theme and add some custom CSS rules to disable it, see https://docs.moodle.org/dev/Moodle_Mobile_Themes&lt;br /&gt;
=== My images, videos or audios stop working after the first time ===&lt;br /&gt;
Please make sure the URL you&#039;re using on the media file doesn&#039;t have any redirect (e.g. http to https), always try to use the final URL. There&#039;s a bug in the library we use to download those files, it doesn&#039;t work when downloading files with redirects. We have plans to remove that library from the app, but since then please always try to use URLs without redirects.&lt;br /&gt;
&lt;br /&gt;
==Administrators==&lt;br /&gt;
=== What plans are available for the Moodle app? ===&lt;br /&gt;
There are three main plans available for the Moodle app: Free, Pro, and Premium, each offering different features and benefits. In addition to the three main plans, there is also a Branded Moodle App (BMA) option. The BMA is a custom-built app that is branded to your organization. Learn more in [[Moodle app plans]].&lt;br /&gt;
=== How can I have my site listed in the Moodle app site finder? ===&lt;br /&gt;
Please refer to our [[Moodle app guide for admins]] for instructions.&lt;br /&gt;
=== How can I debug errors in the app? ===&lt;br /&gt;
Go to the More tab and then to Settings &amp;gt; General. Enable &amp;quot;Display debug messages&amp;quot;. This will show an explanatory message when an error occurs, alternatively, you can do a full debugging via: https://docs.moodle.org/dev/Moodle_Mobile_debugging_WS_requests&lt;br /&gt;
&lt;br /&gt;
=== How can I disable features in the app? ===&lt;br /&gt;
Please go to &#039;&#039;Site administration &amp;gt; Mobile features &amp;gt; Disabled features&#039;&#039; and select all the features you want to disable.&lt;br /&gt;
&lt;br /&gt;
To select multiple features you will have to use Ctrl (Cmd in Mac) + Click&lt;br /&gt;
&lt;br /&gt;
=== How can I add custom menu items in the app? ===&lt;br /&gt;
You can add custom additional menu items in the &amp;quot;more&amp;quot; menu of the app, the one represented by three consecutive dots.&lt;br /&gt;
&lt;br /&gt;
Please go to &#039;&#039;Site administration &amp;gt; Mobile features &amp;gt; Custom menu items&#039;&#039; and follow the instructions in [[Moodle_app_guide_for_admins#Custom_menu_items|Moodle app guide for admins]] for the correct format to use.&lt;br /&gt;
&lt;br /&gt;
As a quick example:&lt;br /&gt;
  Academy information|https://yoursite.com/mod/page/view.php?id=X |app|en|home&lt;br /&gt;
&lt;br /&gt;
=== How can I customise the language strings in the app? ===&lt;br /&gt;
&lt;br /&gt;
Please go to &#039;&#039;Site administration &amp;gt; Mobile features &amp;gt; Custom language strings&#039;&#039; and follow the instructions in [[Moodle_app_guide_for_admins#Custom_language_strings|Moodle app guide for admins]] for the format to use.&lt;br /&gt;
&lt;br /&gt;
As a quick example:&lt;br /&gt;
 core.user.student|Learner|en&lt;br /&gt;
 core.user.student|Aprendiz|es&lt;br /&gt;
&lt;br /&gt;
=== I can connect with my iPhone (or iPad) but not with my Android phone ===&lt;br /&gt;
This usually happens when the site is using https and the certificate is not correctly configured or it is using an old protocol, please use these pages to check this certificate: https://www.sslshopper.com/ssl-checker.html, https://www.geocerts.com/ssl_checker, and https://www.ssllabs.com/ssltest/analyze.html&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The certificate of this site cannot be trusted by your device: TLS connection could not be established: javax.net.ssl.SSLHandshakeException&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This error could be caused because in any of the certification paths there is a certificate using SHA-1. Starting Android 10 this is not allowed, more information here: https://developer.android.com/privacy-and-security/security-ssl&lt;br /&gt;
&lt;br /&gt;
You could easily check the previous using https://www.ssllabs.com/ssltest/analyze.html and going to the Certification Paths -&amp;gt; Android section, if there is any mention to SHA-1 this could be the cause. You will need to upgrade your certificates to avoid using SHA-1.&lt;br /&gt;
&lt;br /&gt;
=== My certificate is fine but I still can&#039;t connect ===&lt;br /&gt;
This is usually a server configuration problem caused by any of the following server configuration issues:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Access to XMLHttpRequest at &#039;https://yoursite/webservice/rest/server.php?moodlewsrestformat=json&amp;lt;nowiki/&amp;gt;...&#039; from origin &#039;&amp;lt;nowiki&amp;gt;http://localhost&#039;&amp;lt;/nowiki&amp;gt; has been blocked by CORS policy: No &#039;Access-Control-Allow-Origin&#039; header is present on the requested resource.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is because a Proxy/Firewall/Web Server security module is removing automatically the Access-Control-Allow-Origin: * header that Moodle sets to allow Web Service requests. &lt;br /&gt;
&lt;br /&gt;
It is totally secure to remove that Proxy/Firewall/Web Server rule/configuration because that header is only set by Moodle when needed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;access-control-allow-origin cannot contain more than one origin&amp;quot;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
iOS and Android apps do not allow the following header to contain more than one item: &amp;quot;Access-Control-Allow-Origin&amp;quot;. For example, a header like this: Access-Control-Allow-Origin: *, https://mydomain.com will cause problems.&lt;br /&gt;
&lt;br /&gt;
This HTTP header is not valid, according to the specification you can only specify a domain or a &amp;quot;*&amp;quot;:&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin&lt;br /&gt;
&lt;br /&gt;
Please, review if you have a Proxy/Firewall/Web Server adding automatically values to that HTTP header.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Security rules are blocking requests using the Accept-Charset header&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some security rules, such as OWASP ModSecurity, are blocking requests with this header that is sent by the Moodle App. In future releases of the app, this problem will be fixed. But in the meantime, you should disable it. Find more about this in MOBILE-4342.&lt;br /&gt;
=== My certificate is fine but the Moodle app is detecting http instead of https ===&lt;br /&gt;
If the Moodle app is detecting http instead of https, please revise config.php (check &amp;quot;wwwroot&amp;quot; as well as &amp;quot;httpswwwroot&amp;quot;)&lt;br /&gt;
===After updating Moodle LMS to a recent version my users cannot login===&lt;br /&gt;
This only applies to sites that are configured to use log in via an embedded browser pointing to their Moodle site.&lt;br /&gt;
This behaviour could be related to this Moodle LMS issue: https://tracker.moodle.org/browse/MDL-81897.&lt;br /&gt;
There are several ways to fix this issue:&lt;br /&gt;
# Upgrade their Moodle site to any of the indicated version in the issue that will solve the problem&lt;br /&gt;
# Manually apply the patch here: https://github.com/jleyva/moodle/compare/462d5f04a8...MDL-81897-master&lt;br /&gt;
# Immediate workaround: Change the app authentication so it will launch in a separate browser, by going to Site admin &amp;gt; Mobile app authentication &amp;gt; Type of login (and select the option that mentions external/system browser), remember to Save Changes&lt;br /&gt;
We’d recommend doing 3) that will immediately address the issue that is affecting new logins.&lt;br /&gt;
===I can&#039;t get the app to work. What can I do?===&lt;br /&gt;
Assuming you have enabled mobile services on your site (please visit [[Moodle app guide for admins]]), please check:&lt;br /&gt;
# If your site uses an SSL certificate, it must be a trusted certificate, not self-signed. Please use these tools or a similar one to check that your certificate is valid: [https://www.sslshopper.com/ssl-checker.html SSL Checker], [https://www.geocerts.com/ssl_checker SSL Checker], and [https://www.ssllabs.com/ssltest/analyze.html SSL Server Test]. All the checks must be ok, including the &amp;quot;Certificate Chain Complete&amp;quot;. Otherwise the app might work on iOS but not on Android.&lt;br /&gt;
# Make sure that the &amp;quot;Access-Control-Allow-Origin&amp;quot; header only contains one item. For example, a header like this: Access-Control-Allow-Origin: *, &amp;lt;nowiki&amp;gt;https://mydomain.com&amp;lt;/nowiki&amp;gt; will cause problems.&lt;br /&gt;
# [[Debugging]] is disabled (in &#039;&#039;Site administration &amp;gt; Development &amp;gt; Debugging&#039;&#039;)&lt;br /&gt;
# The ADOdb debug option is disabled if you are using the external database auth or enrolment plugin (in &#039;&#039;Plugins &amp;gt; Authentication &amp;gt; External database&#039;&#039; and in &#039;&#039;Plugins &amp;gt; Enrolment &amp;gt; External database&#039;&#039;).&lt;br /&gt;
# SHA-1 https certificates are not supported anymore in Chrome, this means that the Android version of the app won&#039;t work for your site. If your site doesn&#039;t work in desktop Chrome or Chromium it won&#039;t work in the Android app. See https://blog.chromium.org/2014/09/gradually-sunsetting-sha-1.html for more information&lt;br /&gt;
# If you are using IIS check that Anonymous access is not disabled for the /webservice directory.&lt;br /&gt;
# If you are using a web application firewall like AWS WAF, StackPath, Barracuda, Cloudflare, Juniper, etc... try to temporary disable it to check if that&#039;s the cause. If so, you&#039;ll have to whitelist these endpoints: login/token.php, webservice/*, lib/ajax/*, media/player/vimeo/wsplayer.php and /tokenpluginfile.php&lt;br /&gt;
You can also add WAF rules to allow traffic by detecting the app user agent such as: (http.user_agent contains &amp;quot;MoodleMobile&amp;quot;)&lt;br /&gt;
If you still have a problem, please post in the [https://moodle.org/mod/forum/view.php?id=7798 Moodle for mobile forum].&lt;br /&gt;
&lt;br /&gt;
If the issue started after updating Moodle LMS please visit [https://docs.moodle.org/en/Moodle_app_FAQ#After_updating_Moodle_LMS_to_a_recent_version_my_users_cannot_login After updating Moodle LMS to a recent version my users cannot login].&lt;br /&gt;
&lt;br /&gt;
=== I cannot access with old users, but I can with recently created ones! ===&lt;br /&gt;
Please, do a &amp;quot;Purge all caches&amp;quot; via the Moodle administration settings, this will solve the problem.&lt;br /&gt;
===I can&#039;t view the courses tab as an administrator===&lt;br /&gt;
The Moodle app only displays courses you are enrolled in. If you want to view a course as an admin, you need to enrol in it.&lt;br /&gt;
===My Moodle site uses a SSO auth method (Shibboleth, Google OAuth, etc) and the app is not working===&lt;br /&gt;
See the section &#039;Mobile authentication&#039; in the [[Moodle app guide for admins]] for details of how to configure it.&lt;br /&gt;
&lt;br /&gt;
If configured the app is still not connecting: If your site uses an SSL certificate, it must be a trusted certificate, not self-signed. Please use this tool or a similar one to check that your certificate is fine: [https://www.geocerts.com/ssl_checker SSL Checker]. All the checks must be OK, including the &amp;quot;Certificate Chain Complete&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If your SSO method is unable to authenticate when using an &amp;quot;embedded browser&amp;quot; (it gives an authentication error), please check if it works with a &amp;quot;browser window&amp;quot;. If it does work with the browser window then it means your SSO is performing an HTTP redirect, and these kind of redirects aren&#039;t supported by the app (the request is redirected by the browser not passing the POST parameters). Unfortunately, this is something we cannot control in the Mobile app (it can&#039;t be handled via JavaScript). For further information, see http://stackoverflow.com/questions/228225/prevent-redirection-of-xmlhttprequest and http://stackoverflow.com/questions/4168784/ajax-redirection-handling&lt;br /&gt;
&lt;br /&gt;
There are only 2 possible solutions: set the authentication via a &amp;quot;browser window&amp;quot; instead of an embedded one (please notice this won&#039;t work in the Linux desktop app), or remove the redirect from the SSO auth method.&lt;br /&gt;
&lt;br /&gt;
===SSO is not working with my custom auth plugin===&lt;br /&gt;
SSO should work in any plugin if the plugin handles correctly the $SESSION-&amp;gt;wantsurl, this is the way SSO works when it is launched via the app:&lt;br /&gt;
* It launchs this URL https://yourmoodle/admin/tool/mobile/launch.php?service=local_mobile&amp;amp;passport=abc in the device browser &lt;br /&gt;
* If the user is not logged in, the browser will redirect the user to the login page&lt;br /&gt;
* If the auth plugin used implements correctly the handling of the wantsurl session var, once the user has logged in, the browser should redirect back to the https://yourmoodle/admin/tool/mobile/launch.php?service=local_mobile&amp;amp;passport=abc URL that will launch the mobile app via the custom URL protocol&lt;br /&gt;
Custom auth plugins may be failing in the last step,not redirecting back to tool/mobile, this will happen only if the plugin does not support correctly the $SESSION-&amp;gt;wantsurl.&lt;br /&gt;
&lt;br /&gt;
The SAML plugin works correctly but some modifications of that plugin may not work if important lines are changed.&lt;br /&gt;
===I am having problems requesting an airnotifier access key===&lt;br /&gt;
If you have registered your site but are still unable to request an access key, please register your site on the Moodle Apps Portal https://apps.moodle.com once your site is registered there, an Airnotifier access key will be automatically generated for you.&lt;br /&gt;
=== Push notifications are not working ===&lt;br /&gt;
Please check [[Mobile app notifications#Troubleshooting]]&lt;br /&gt;
=== How notifications icon badges are updated ===&lt;br /&gt;
&#039;&#039;&#039;Android&#039;&#039;&#039;: Not all Android devices support icon badges so in some cases badges will never display numbers, also, depending on the device only a badge indicating that there are new notifications will be displayed when receiving a Push notification when the app is not in the foreground.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;iOS&#039;&#039;&#039;: The icon badge counter is only updated when the app is open and it will reflect the number of notifications pending reading or the number of message senders that sent you a message you have not read yet&lt;br /&gt;
&lt;br /&gt;
In general, for iOS the icon badge displayed number should match the one displayed at the bottom of the app (or it should be the sum of the notifications and messages badges) and is not an indicator of the number of Push notifications the user has received, it acts as a reminder of pending notifications to be read that only gets updated when the user open the apps&lt;br /&gt;
&lt;br /&gt;
There is an open issue to improve the behaviour on iOS, please watch MDL-73707&lt;br /&gt;
=== I configured &#039;QR code access&#039; to automatic login, but the app still asks for credentials  ===&lt;br /&gt;
Automatic authentication only works for Pro and Premium sites. You can see the app plans [https://moodle.com/app/ in this site].&lt;br /&gt;
&lt;br /&gt;
If you&#039;re getting an error saying that the device you&#039;re using to connect isn&#039;t in the same network as the device that displays the QR code but both devices are connected to the same network, please check the section: [[#ipmismatch:_.27Client_IP_address_mismatch.27|ipmissmatch: &#039;Client IP address mismatch&#039;]].&lt;br /&gt;
&lt;br /&gt;
=== I can log in on my Moodle site but I see a blank page or the app styles broken ===&lt;br /&gt;
This is usually because your Moodle site has a customised CSS. &lt;br /&gt;
&lt;br /&gt;
Please try leaving empty CSS (&#039;&#039;mobilecssurl&#039;&#039;) on Site administration &amp;gt; Mobile app &amp;gt; Mobile appearance. If that works, please read [https://docs.moodle.org/dev/Moodle_App_Remote_Themes Moodle App Remote Themes] and create a new CSS file using the variables mentioned there&lt;br /&gt;
&lt;br /&gt;
===The Moodle app does not connect to MoodleBox (or other internal self-hosted systems)===&lt;br /&gt;
You will need to disable SSL to make the app works, please see this forum discussion for more information: https://moodle.org/mod/forum/discuss.php?d=424353#p1739474&lt;br /&gt;
===I think I found a bug with the app. Where can I report it?===&lt;br /&gt;
# Log in to the [https://tracker.moodle.org/browse/MOBILE Moodle Mobile tracker] (you&#039;ll need to [http://tracker.moodle.org/secure/Signup%21default.jspa create a tracker account] if you&#039;ve not done so previously)&lt;br /&gt;
# Check whether the issue has already been reported by doing a [https://tracker.moodle.org/issues/?jql=project%20%3D%20MOBILE search]&lt;br /&gt;
# If not, report the bug by clicking the &#039;Create Issue&#039; link at the top right of the page, selecting &#039;Moodle app&#039; as the project&lt;br /&gt;
# Add a detailed description providing as much information as possible (Moodle version, app version, device model and operating system, etc...), then click the Create button&lt;br /&gt;
===How can I get the app in my language?===&lt;br /&gt;
[[File:setting the app lang.png|thumb|100px|Setting your language]]&lt;br /&gt;
The Moodle app automatically detects your mobile&#039;s language and displays in the same language (if the translation exists). Otherwise, you can set the app language in App settings &amp;gt; General.&lt;br /&gt;
&lt;br /&gt;
See also a post explaining how multi-lang works in the Moodle app: [https://moodle.org/mod/forum/discuss.php?d=453445#p1825637 Re: Language selector missing in Moodle app]&lt;br /&gt;
&lt;br /&gt;
If the Moodle app is not yet available in your language, please contribute a translation! See [https://docs.moodle.org/dev/Translating%20Moodle%20Mobile Translating Moodle Mobile] for details of what to do.&lt;br /&gt;
&lt;br /&gt;
=== Changes made to a Moodle site URL can cause logged-in users’ data to fail when synchronising. ===&lt;br /&gt;
We recommend that administrators manually log out all users after a site rename. If your site URL changes and have site users that are using the mobile Moodle App we suggest the following:&lt;br /&gt;
* For users that have not yet logged in - we recommend sending them the new URL&lt;br /&gt;
*   For users already using the mobile Moodle App and potentially logged in request them to:&lt;br /&gt;
** log out of the mobile Moodle App,&lt;br /&gt;
** delete the old site, and&lt;br /&gt;
** log in using the new URL&lt;br /&gt;
Logged in Moodle users can continue working with the previous URL (with cached information) but they will not be able to synchronise the new information (therefore not receiving new information from their teachers, and teachers not receiving data or submissions from those students).&lt;br /&gt;
* To avoid the risk of data not synchronising, we recommend the site administrator logs out all app users, by manually deleting their tokens:&lt;br /&gt;
** Go to Site administration&lt;br /&gt;
** Click Server &lt;br /&gt;
** Click Web services &lt;br /&gt;
** Click Manage tokens &lt;br /&gt;
** Delete the tokens&lt;br /&gt;
Take into account that you still need to request your users to log in using the new URL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Embedded content is not working ===&lt;br /&gt;
&lt;br /&gt;
This could be caused because your site is using a Content-Security-Policy that is preventing the app from embedding content.&lt;br /&gt;
&lt;br /&gt;
You can easily detect this when an error like this is displayed (javascript console): Refused to load URL because it does not appear in the frame-ancestors directive of the Content Security Policy.&lt;br /&gt;
&lt;br /&gt;
If that&#039;s the case, you&#039;d need to add the following elements: http://localhost moodleappfs://localhost at the end of the &amp;quot;Content-Security-Policy&amp;quot; HTTP header:&lt;br /&gt;
&lt;br /&gt;
An example of a CSP allowing embedding Vimeo videos in the site and content in the app:&lt;br /&gt;
Content-Security-Policy: frame-ancestors &#039;self&#039; https://*.vimeocdn.com https://*.vimeows.com https://*.vimeo.com http://localhost moodleappfs://localhost ;&lt;br /&gt;
&lt;br /&gt;
Other type of embedded content that does not work is content hosted by Microsoft tools that require session or any type of authentication, such as SharePoint content.&lt;br /&gt;
&lt;br /&gt;
=== Some activities are displayed incorrectly (blank, just a vertical line, ..) on the app ===&lt;br /&gt;
Please visit the forum post [[https://moodle.org/mod/forum/discuss.php?d=461909#p1854918| Some lesson activities do not display at all]].&lt;br /&gt;
&lt;br /&gt;
==Error messages==&lt;br /&gt;
=== &#039;Coding error: version.php file is missing for the component&#039; ===&lt;br /&gt;
This error message indicates that that plugin is not correctly installed (or uninstalled) on the Moodle site you use (see [[Installing plugins]]). Please review the mod/certificate folder to check if the version.php file is missing (or has incorrect permissions) as well as purge cache too.&lt;br /&gt;
=== &#039;Can not find data record in database table external_functions&#039; ===&lt;br /&gt;
This error usually happens due to a bad configuration or setting value in your Moodle site, please check:&lt;br /&gt;
# The user quota global setting should be an integer. For more details, see the discussion [https://moodle.org/mod/forum/discuss.php?d=320873 How to enable Moodle Mobile App for all accounts].&lt;br /&gt;
# The &#039;&#039;usermaxuploadfilesize&#039;&#039; should be an integer, please try to decrease the size. It can be configured in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; Site Policies &amp;gt; Maximum uploaded file size&#039;&#039;. The default value (Site upload limit) depends on the PHP configuration, you might have to change the value of &#039;&#039;upload_max_filesize&#039;&#039; and &#039;&#039;post_max_size&#039;&#039; in your &#039;&#039;php.ini&#039;&#039; file.&lt;br /&gt;
# The user &amp;quot;lang&amp;quot; field in the database is set to a correct value and existing language installed in the site. Some times the lang field is set via external systems to incorrect values or pointing to a language pack that was uninstalled. Please, note that to fix this you need direct access to the database and your &#039;user&#039; and &#039;course&#039; table.&lt;br /&gt;
===&#039;Cannot connect: Verify that you have typed correctly the URL and that your site uses Moodle 3.5 or later&#039;===&lt;br /&gt;
Take into account that the app will only connect to Moodle LMS sites version 3.5 onward.&lt;br /&gt;
Please also check:&lt;br /&gt;
# Mobile services are enabled for the site.&lt;br /&gt;
# The user is entering the correct URL for the site (see FAQ above)&lt;br /&gt;
# For https sites, the certificate is valid (see FAQ above)&lt;br /&gt;
===&#039;Invalid Moodle site version. The Moodle app only supports Moodle systems 3.5 onwards&#039;===&lt;br /&gt;
The app will only connect to Moodle LMS sites version 3.5 onward (see [https://docs.moodle.org/35/en/Upgrading Upgrade to 3.5] as well as [[Upgrade overview]]).&lt;br /&gt;
===&#039;We lost connection; you need to reconnect. Your token is now invalid.&#039; on my custom version of the Moodle app ===&lt;br /&gt;
Please check:&lt;br /&gt;
# You have followed all the steps listed in [https://docs.moodle.org/dev/Moodle%20Mobile%20Developing%20a%20plugin%20tutorial Moodle Mobile Developing a plugin tutorial]&lt;br /&gt;
# You have enabled the [[Capabilities/moodle/webservice:createtoken|moodle/webservice:createtoken]] for the authenticated user&lt;br /&gt;
===&#039;No permission to create web service token for the service local_mobile&#039; when attempting to log in (any user that it is not an admin)===&lt;br /&gt;
Please check you have enabled the moodle/webservice:createtoken for the authenticated user or any global role you want to allow to use the mobile app&lt;br /&gt;
===&#039;No permission to create web service token for the service local_mobile&#039; when attempting to log in as an admin===&lt;br /&gt;
You need to create a token for the admin account (only) as follows:&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Web services &amp;gt; Manage tokens&#039;&#039;&lt;br /&gt;
# Click Add&lt;br /&gt;
# Enter the admin username and select &#039;Moodle app additional features service&#039; (i.e. do NOT leave it as &#039;Moodle app web service&#039;)&lt;br /&gt;
# Click the &#039;Save changes&#039; button.&lt;br /&gt;
===&#039;Invalid response value detected&#039; when accessing the site ===&lt;br /&gt;
The user quota global setting should be an integer. For more details, see the discussion [https://moodle.org/mod/forum/discuss.php?d=320873 How to enable Moodle Mobile App for all accounts].&lt;br /&gt;
=== &#039; Invalid response value detected: Invalid external api response: the value is &amp;quot;&amp;quot;, the server was expecting &amp;quot;raw&amp;quot; type&amp;quot; ===&lt;br /&gt;
This usually happens when there is a field with value NULL in a table in the database that should not be there. This may happen if your Moodle has been upgraded over many years and the database schema is broken.&lt;br /&gt;
&lt;br /&gt;
To fix it, you can do the following: &lt;br /&gt;
* Detect the field that is causing the problem (it should be indicated before the error message)&lt;br /&gt;
* Fix the field, for example, for the password field in the lesson table: UPDATE mdl_lesson SET password = &#039;&#039; WHERE password IS NULL (remember that your table prefix can be different than mdl_)&lt;br /&gt;
===&#039;Invalid response value detected&#039; when accessing My Courses or Course Overview ===&lt;br /&gt;
This usually happens when a course uses a language that isn&#039;t installed in the site. Please make sure that all courses use valid languages. This can be easily checked in the database, table &amp;quot;course&amp;quot;, there is a column named &amp;quot;lang&amp;quot;.&lt;br /&gt;
===&#039;A required parameter (username) was missing&#039;===&lt;br /&gt;
This may happen if your site implements HTTP redirects; the request is redirected by the browser not passing the POST parameters.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, this is something we cannot control in the Mobile app (it can&#039;t be handled via JavaScript). For further information, see http://stackoverflow.com/questions/228225/prevent-redirection-of-xmlhttprequest and http://stackoverflow.com/questions/4168784/ajax-redirection-handling&lt;br /&gt;
&lt;br /&gt;
The solution is to change the HTTP redirect and use an HTML page with a meta tag or JavaScript redirect.&lt;br /&gt;
===&#039;Cannot get course contents&#039;===&lt;br /&gt;
This usually happens when the course is using a course format plugin that was uninstalled from the server or that was not properly installed.&lt;br /&gt;
&lt;br /&gt;
Please, reinstall again the course format plugin.&lt;br /&gt;
===&#039;Access control exception&#039; or &#039;Your authentication token is invalid or has expired&#039;===&lt;br /&gt;
Please double-check that &#039;Enable web services for mobile devices&#039; (&#039;&#039;enablemobilewebservice&#039;&#039;) is actually enabled. (It might be unabled if for example you have reseted some roles.)&lt;br /&gt;
&lt;br /&gt;
If this error appears as soon as you enter the username and password for a new site, then it probably means that the token expiration time is badly configured. This is how to fix it:&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Security &amp;gt; Site security settings&#039;&#039;.&lt;br /&gt;
# Find the setting named &#039;&#039;User created token duration&#039;&#039;.&lt;br /&gt;
# If the value is set to 0 or it&#039;s too low, please set it back to a valid value (the default value is 12 weeks).&lt;br /&gt;
# Click the &#039;Save changes&#039; button.&lt;br /&gt;
&lt;br /&gt;
===ipmismatch: &#039;Client IP address mismatch&#039;===&lt;br /&gt;
This error can appear when a user opens your site in a browser while using the app. This happens if your site is behind a proxy and you&#039;re using one of these Moodle versions o higher: 3.5.11, 3.6.9, 3.7.5, 3.8.2, 3.9.0.&lt;br /&gt;
&lt;br /&gt;
To fix it:&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Administration &amp;gt; Server &amp;gt; HTTP&#039;&#039;.&lt;br /&gt;
# Find the setting named &#039;&#039;Ignore reverse proxies&#039;&#039; (reverseproxyignore).&lt;br /&gt;
# Enter the IP of your proxy (or range of IPs).&lt;br /&gt;
# Click the &#039;Save changes&#039; button.&lt;br /&gt;
If you are still experiencing issues please try to change this setting &amp;quot;getremoteaddrconf&amp;quot; (Logged IP address source) to the different existing values.&lt;br /&gt;
&lt;br /&gt;
Finally, it is possible to disable the IP restriction checks for functionality such as the QR login, to do that, go to Site administration &amp;gt; Mobile app &amp;gt; Mobile app authentication, and disable the &amp;quot;QR authentication same IP check&amp;quot; setting.&lt;br /&gt;
=== &#039;The param &amp;quot;includestealthmodules&amp;quot; is invalid&#039; ===&lt;br /&gt;
Please contact your learning organisation so they upgrade to at least Moodle 3.5.3 (see [https://docs.moodle.org/35/en/Upgrading Upgrade to 3.5] as well as [[Upgrade overview]]) or they manually apply the patch listed here [[MDL-63542]].&lt;br /&gt;
&lt;br /&gt;
==Older versions of the Moodle app==&lt;br /&gt;
We always recommend using the last version of the Moodle App but some times users are still using older versions this is the reason we are keeping this list:&lt;br /&gt;
&lt;br /&gt;
=== Some users are asked to reauthenticate too often when they browse the site (Moodle App &amp;lt;3.9.3) ===&lt;br /&gt;
This can happen if the app is sending too many variables to a WebService, e.g. because a course has a large number of sections and/or activities. This error was fixed in the 3.9.3 version of the app, but if you are using an older version of the app you can increase the value of &#039;&#039;max_input_vars&#039;&#039; in &#039;&#039;php.ini&#039;&#039; to fix it in your server.&lt;br /&gt;
&lt;br /&gt;
=== After upgrading to 3.9.5 some of my plugins have stopped working ===&lt;br /&gt;
The Moodle App 3.9.5 version came with some breaking changes for plugins, most of the existing plugins have been updated to support the new changes.&lt;br /&gt;
Please check the following list of plugins that should work for 3.9.5 once you have upgraded to the latest version indicated in the document: https://docs.google.com/spreadsheets/d/1E9PqcUBpp9SAfQc_zJtX5tf9GeS3UN76A85IrrB4UDw/edit#gid=0&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7798 Moodle for mobile forum] on moodle.org.&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[de:Moodle Mobile - FAQ]]&lt;br /&gt;
[[ca:Moodle Mobile FAQ]]&lt;br /&gt;
[[es:Moodle app FAQ]]&lt;br /&gt;
[[fr:Moodle pour les mobiles]]&lt;br /&gt;
[[ja:バイルMoodle FAQ]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_offline_features&amp;diff=154384</id>
		<title>Moodle app offline features</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_offline_features&amp;diff=154384"/>
		<updated>2025-10-15T08:50:54Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* See also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
We live in a hyper-connected 5G world and we think the Internet is everywhere, but we usually forget about: &lt;br /&gt;
&lt;br /&gt;
* Underdeveloped and developing countries&lt;br /&gt;
* Rural areas in big countries&lt;br /&gt;
* Kids with restricted data plans&lt;br /&gt;
* Shared internet connection in schools/classrooms&lt;br /&gt;
* Aerial and maritime traffic&lt;br /&gt;
&lt;br /&gt;
One of the most powerful features of the Moodle app is that it enables us to work offline.&lt;br /&gt;
&lt;br /&gt;
Students can browse course contents offline and participate in activities, then once they are connected back to the Internet, the app will synchronise all the necessary information with their Moodle site.&lt;br /&gt;
&lt;br /&gt;
== How does the app store data for offline use? ==&lt;br /&gt;
&lt;br /&gt;
* While browsing the site and its contents, though note that external contents (e.g. YouTube videos) are not downloaded and embedded files (audio, video) are not always downloaded (it depends on the user connection and file size)&lt;br /&gt;
* When the user downloads content by the download icon&lt;br /&gt;
** The user can use the “cloud” icon to download specific content or a complete section or course&lt;br /&gt;
** The user gets alerted when downloading large files&lt;br /&gt;
** If a resource has been updated in the server, a refresh icon will be shown.&lt;br /&gt;
&lt;br /&gt;
===Why doesn’t the app pre-fetch/cache more data?===&lt;br /&gt;
# Because the user may have a monthly data plan&lt;br /&gt;
# Because the device storage space may be limited&lt;br /&gt;
# Massive data download might impact on the server performance&lt;br /&gt;
&lt;br /&gt;
===What does the app consider to be a large file?===&lt;br /&gt;
* If the user is connected to a Wi-Fi network: large file &amp;gt;= 20MB&lt;br /&gt;
*If the user is connected to a data network:  large file &amp;gt;= 2MB&lt;br /&gt;
&lt;br /&gt;
== Course features offline support ==&lt;br /&gt;
&lt;br /&gt;
* All course resources can be downloaded for offline (except URL)&lt;br /&gt;
* All course activities are supported (except Chat and External tool)&lt;br /&gt;
* Additional (non-standard) plugins usually don’t work offline&lt;br /&gt;
* Some functionality for certain activity modules does not work offline, see below for more information.&lt;br /&gt;
&lt;br /&gt;
=== Assessment ===&lt;br /&gt;
&lt;br /&gt;
The offline mode is disabled by default in Quiz and Lesson, however, the teacher can decide if they want to enable it.&lt;br /&gt;
* A quiz may be attempted offline only if:&lt;br /&gt;
** There is no time limit set&lt;br /&gt;
** The question behavior is deferred feedback (with or without CBM) only&lt;br /&gt;
** New in &#039;&#039;&#039;Moodle 4.3.1&#039;&#039;&#039;  - the Quiz uses sequential navigation.&lt;br /&gt;
** There is no network address requirement&lt;br /&gt;
&lt;br /&gt;
For detailed information about Quiz and how it works offline please see [[Moodle Mobile quiz offline attempts]].&lt;br /&gt;
&lt;br /&gt;
=== Other activities ===&lt;br /&gt;
* SCORM and H5P packages are downloaded to the user’s device by default, there are settings to control this behaviour in order to prevent the packages from being downloaded (check this support pages for more information, [[Moodle app SCORM player]] and [[Moodle app H5P support]]).&lt;br /&gt;
* Wiki editing is not supported offline&lt;br /&gt;
* Glossaries entries can’t be deleted/updated offline&lt;br /&gt;
* Text assignment submissions can’t be edited offline&lt;br /&gt;
* Activities configured with availability conditions cannot be/are not downloaded for offline (the user will have to reconnect to be able to see activities unlocked by conditions recently met)&lt;br /&gt;
&lt;br /&gt;
== What other features work offline?==&lt;br /&gt;
&lt;br /&gt;
Apart from resources and activities certain course and site functionality are also available offline.&lt;br /&gt;
&lt;br /&gt;
The offline support for completion is only for marking courses or activities completed (when viewed).&lt;br /&gt;
&lt;br /&gt;
Conditioned activities are not downloaded for offline.&lt;br /&gt;
&lt;br /&gt;
* Participants&lt;br /&gt;
* Grades&lt;br /&gt;
* Completion&lt;br /&gt;
* Notes&lt;br /&gt;
* Messaging&lt;br /&gt;
* Notifications&lt;br /&gt;
* Calendar events&lt;br /&gt;
* Private files&lt;br /&gt;
* Badges&lt;br /&gt;
* Blogs&lt;br /&gt;
* Rating&lt;br /&gt;
* Comments&lt;br /&gt;
&lt;br /&gt;
== Synchronisation == &lt;br /&gt;
&lt;br /&gt;
Synchronisation works differently depending on the device&lt;br /&gt;
* Android: The app must be opened but it can be in the background (you can be using a different app).&lt;br /&gt;
* iOS (iPhone, iPad): The app must be opened and in the foreground (it has to be the device active app).&lt;br /&gt;
* Desktop: The app must be opened but it can be in the background (minimised).&lt;br /&gt;
&lt;br /&gt;
🔋The battery is the key factor, mobile OS limits its usage&lt;br /&gt;
&lt;br /&gt;
There are two ways of synchronising data:&lt;br /&gt;
&lt;br /&gt;
* Automatic&lt;br /&gt;
** Runs regularly, every 10 minutes&lt;br /&gt;
* Manual&lt;br /&gt;
** The user will see a message indicating there is data pending synchronisation&lt;br /&gt;
&lt;br /&gt;
===What happens with the student activity after synchronisation?===&lt;br /&gt;
Actions performed offline are logged and stored into the system with the synchronisation time, not with the time when they happened.&lt;br /&gt;
We are exploring ways to improve reporting via Moodle’s xAPI support.&lt;br /&gt;
&lt;br /&gt;
For more information about how synchronisation works see [[Moodle app synchronization]].&lt;br /&gt;
&lt;br /&gt;
== Configuration options ==&lt;br /&gt;
&lt;br /&gt;
Site administrators can decide if they want:&lt;br /&gt;
* Disable completely the offline mode&lt;br /&gt;
* Disable all courses downloading&lt;br /&gt;
* Disable individual courses downloading&lt;br /&gt;
&lt;br /&gt;
For disabling the previous features, please see [[Moodle app guide for admins]].&lt;br /&gt;
&lt;br /&gt;
Users can decide if they want to allow synchronisation only when connected to a Wi-Fi network or also when using a data network.&lt;br /&gt;
&lt;br /&gt;
==Moodle App Plans ==&lt;br /&gt;
&lt;br /&gt;
When using the Moodle App, site admins can choose to subscribe to a paid plan or use the free version. &lt;br /&gt;
&lt;br /&gt;
Plans limit the download of complete courses in one click.&lt;br /&gt;
&lt;br /&gt;
Students can still download individual contents or sections.&lt;br /&gt;
&lt;br /&gt;
We recommend a Premium plan subscription: https://apps.moodle.com&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Moodle app SCORM player]]&lt;br /&gt;
* [[Moodle app H5P support]]&lt;br /&gt;
* [[Moodle Mobile quiz]]&lt;br /&gt;
* [[Moodle app synchronization]]&lt;br /&gt;
* [https://www.youtube.com/watch?v=LqwG2XfSSiQ Use case: Scaling school leadership training through app-based Moodle learning] &lt;br /&gt;
* [https://www.youtube.com/watch?v=nk3SJuDduNs Use case: Reaching every learner; Scalable offline-first Moodle for African education]&lt;br /&gt;
&lt;br /&gt;
[[es:Características de Moodle app sin conexión]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_guide_for_admins&amp;diff=153793</id>
		<title>Moodle app guide for admins</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_guide_for_admins&amp;diff=153793"/>
		<updated>2025-08-08T10:41:17Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Biometric Login */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
==Enable mobile services on your site==&lt;br /&gt;
Your site needs to have mobile access enabled so users can use the mobile app.&lt;br /&gt;
&lt;br /&gt;
For sites using https, mobile access is enabled by default in new installations of Moodle 3.0 onwards.&lt;br /&gt;
&lt;br /&gt;
For http sites, mobile access can be enabled by an administrator as follows:&lt;br /&gt;
# In &#039;&#039;Site administration &amp;gt; Mobile app &amp;gt; Mobile settings&#039;&#039; tick the &#039;Enable web services for mobile devices&#039; checkbox. (For 4.0 version: In &#039;&#039;Site administration &amp;gt; Advanced features&#039;&#039; tick the &#039;Enable web services for mobile devices&#039; checkbox&lt;br /&gt;
# Click the button to save changes.&lt;br /&gt;
If your site uses a [https://en.wikipedia.org/wiki/Transport_Layer_Security SSL certificate], it must be a trusted certificate. For security reasons the app doesn&#039;t work with self-signed certificates.&lt;br /&gt;
&lt;br /&gt;
Please, verify that your certificate is valid via: https://www.geocerts.com/ssl_checker (you shouldn&#039;t see any warning).&lt;br /&gt;
&lt;br /&gt;
If your site has the /login directory protected (frequently done when using the Shibboleth authentication method), you must enable access to the login/token.php script.&lt;br /&gt;
===Frame embedding===&lt;br /&gt;
If your sites uses [https://en.wikipedia.org/wiki/ReCAPTCHA reCaptcha], Vimeo videos or custom menu items (as described bellow) you must enable the admin setting &amp;quot;Allow frame embedding&amp;quot; (allowframembedding). Please, note this is not necessary since Moodle 3.7&lt;br /&gt;
===Is your site behind a proxy, or load balancer or complex network infrastructure?===&lt;br /&gt;
In that case, you may need to configure the &amp;quot;Ignore reserver proxies&amp;quot; settings in Site administration &amp;gt; Administration &amp;gt; Server &amp;gt; HTTP&lt;br /&gt;
==Register your site on the Moodle Apps Portal==&lt;br /&gt;
We strongly recommend you to register your site for free on the Moodle Apps portal: https://apps.moodle.com&lt;br /&gt;
&lt;br /&gt;
You will be able to retrieve statistics like the number of active user devices receiving Push Notifications and upgrade to a Pro/Premium plan for enjoying exclusive features.&lt;br /&gt;
==Simplify user onboarding==&lt;br /&gt;
Upon opening the Moodle app, first-time users encounter a &amp;quot;Your site&amp;quot; field, where they have to input the URL of their Moodle site to access their courses. To ensure a smooth onboarding experience for new users, follow these steps:&lt;br /&gt;
# Enable the &#039;&#039;&#039;Site finder&#039;&#039;&#039; feature that allows users to find their Moodle site by name, eliminating the need to manually enter the site URL. To enable this feature, view [[Moodle app guide for admins#Have your site listed in the Moodle app site finder|Have your site listed in the Moodle app site finder]] below.&lt;br /&gt;
# Enable the &#039;&#039;&#039;QR login&#039;&#039;&#039; feature (view [[Moodle app guide for admins#QR Login|instructions]] below). This feature allows users to scan a QR code available on their Moodle profile to access their Moodle site directly from the app. &lt;br /&gt;
# For Android users and Moodle LMS 4.3 and later: Encourage users to install the Moodle app by following the &#039;&#039;&#039;Get the mobile app&#039;&#039;&#039; link at the bottom of any Moodle page (located within the &amp;quot;&#039;&#039;&#039;?&#039;&#039;&#039;&amp;quot; icon on the desktop version). When users install the app through this link, they will be automatically redirected to their site login screen, eliminating the need to manually enter the site URL.&lt;br /&gt;
# Alternatively, you can create a dedicated help page for the Moodle app. This help page should include a link to the Google Play version of the app and clearly indicate the site URL referrer. For example, if your Moodle site is mymoodlesite.com the link will be https://play.google.com/store/apps/details?id=com.moodle.moodlemobile&amp;amp;referrer=siteurl%3Dhttps%3A%2F%2Fmymoodlesite.com&lt;br /&gt;
Please note that options 3&amp;amp;4 are not compatible with Google Workspace accounts (the installation referrer will be ignored in that case).&lt;br /&gt;
==Have your site listed in the Moodle app site finder==&lt;br /&gt;
The Moodle apps site finder enables a user to easily find their Moodle site by entering the name (no need to enter the site URL)&lt;br /&gt;
===How can I have my site listed in the Moodle app site finder?===&lt;br /&gt;
Your site will be automatically listed in the site finder if:&lt;br /&gt;
* either your site is registered and listed with a link on [https://stats.moodle.org/sites/ Registered sites] and has over five hundred mobile users and you have been using the Moodle app for over a year&lt;br /&gt;
* or you have purchased a [https://moodle.com/app/ Pro or Premium Moodle app subscription].&lt;br /&gt;
You can arrange for your site to be listed in the site finder as follows:&lt;br /&gt;
* If your site is hosted by a Moodle Partner, please contact them to request for your site to be listed. &lt;br /&gt;
* If you have a MoodleCloud site, please log in to the Moodle Apps Portal where you will find an option to have your site listed.&lt;br /&gt;
Otherwise, to have your site listed in the site finder, you need to purchase a [https://moodle.com/app/ Pro or Premium Moodle app subscription] from the Moodle Apps Portal.&lt;br /&gt;
===I don’t want my site listed in the Moodle app site finder. How can I remove it?===&lt;br /&gt;
You can remove your site from the site finder as follows:&lt;br /&gt;
# Log in to the [https://apps.moodle.com/ Moodle Apps Portal]. (If you don&#039;t yet have an account, you can create one for free.)&lt;br /&gt;
# Go to ‘App customisation’ -&amp;gt; ‘Site Listing’ and uncheck the option ‘Visible’ then save changes. &lt;br /&gt;
Your site will then be immediately removed from the site finder.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can remove your site from the site finder by updating your site registration:&lt;br /&gt;
# Log in to your Moodle site as admin and go to ‘Site administration’ -&amp;gt; Registration.&lt;br /&gt;
# Change ‘Site listing’ to either ‘Do not list my site’ or ‘Only display my site name’.&lt;br /&gt;
Your site will then be removed from the site finder within 24 hours.&lt;br /&gt;
==Mobile authentication==&lt;br /&gt;
&lt;br /&gt;
===MFA===&lt;br /&gt;
The Moodle mobile app does not support MFA natively yet, however, you can redirect users to a browser to force the authentication process to behave exactly as Moodle LMS. You can do the previous via Site administration &amp;gt; Mobile authentication &amp;gt; Type of login and then select any of the options that mention browser.&lt;br /&gt;
&lt;br /&gt;
===SSO authentication method===&lt;br /&gt;
If your site uses a SSO authentication method (Shibboleth, LDAP SSO, OAuth...), then select via a browser window or via an embedded browser for &#039;Type of login&#039; (typeoflogin) in &#039;Mobile authentication&#039; in the Site administration. (This setting is provided for older pre-Moodle 3.2 sites via the [[Moodle Mobile additional features]] plugin.)&lt;br /&gt;
&lt;br /&gt;
The options &#039;browser window&#039; and &#039;embedded browser&#039; are very similar; the only difference is when redirecting the user to enter their credentials in the site, the site will be opened in the device&#039;s default browser (for browser window) or the site will be opened &amp;quot;embedded&amp;quot; in the mobile app (for embedded browser). The user experience is better in embedded browser, but not all the authentication plugins will work in embedded browser (for example, if JavaScript popups are required they must use the &#039;browser window&#039;). The admin should check whether both options work, and if so, choose &#039;embedded browser&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are using Google OAuth you will have to use the &#039;browser window&#039; method because Google recently blocked authentication via &#039;embedded browsers&#039;.&lt;br /&gt;
&lt;br /&gt;
If your organisation uses a custom branded app and &#039;Type of login&#039; is set to &#039;Via a browser window&#039; or &#039;Via embedded browser&#039;, then a URL scheme (forcedurlscheme) may be set. This will result in only the custom branded app working for the site: the official Moodle Mobile app will not work.&lt;br /&gt;
&lt;br /&gt;
===QR Login===&lt;br /&gt;
Please note that this feature requires Moodle 3.9 and is only available if you are enjoying a [https://moodle.com/app/ Pro/Premium plan].&lt;br /&gt;
&lt;br /&gt;
As a site administrator, you can enable login via QR. Please go to Site administration &amp;gt; Mobile app &amp;gt; Mobile authentication and select &amp;quot;QR code with automatic login&amp;quot; in the &amp;quot;QR code access&amp;quot; setting&lt;br /&gt;
&lt;br /&gt;
Once enabled, your students will be able to login in the app by scanning a QR code available on their Moodle site profile.&lt;br /&gt;
===Biometric Login===&lt;br /&gt;
This feature is only available to Pro, [https://apps.moodle.com Premium plan customers] and in Branded Moodle Apps developed by Moodle HQ.&lt;br /&gt;
&lt;br /&gt;
Biometric login allows your users to log in to your site via the Moodle App on Android and iOS devices using their fingerprint, face recognition or any other biometric option available on their mobile device. This makes the login process simpler, faster and more secure, and is specially useful if Autologout is enabled on your site.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enabling biometric login for your site&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can enable Biometric login as an authentication method through the Moodle Apps Portal, going to App customisation &amp;gt; Authentication &amp;gt; Biometric login, and then selecting “Enable biometric login”. Your users will then be able to choose whether they want to use Biometric login or not.&lt;br /&gt;
&lt;br /&gt;
For security reasons, users may be prompted to re-enter their credentials periodically. This interval is determined by the &#039;User created token duration&#039; (tokenduration) security setting, which is set to a default duration of three months. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setting up biometric login as a user&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To use biometric login in the Moodle App, users must have biometric authentication enabled in their own device&#039;s settings (e.g. FaceID or TouchID for iOs users, or Fingerprints for Android users).&lt;br /&gt;
&lt;br /&gt;
The first three times users log in to the app after you enable Biometric login, they will see a notification telling them that they can activate this new authentication method to access the app (provided that they have biometric authentication enabled in their device&#039;s settings).&lt;br /&gt;
&lt;br /&gt;
Users can activate and deactivate their biometric login any time in the Moodle App in User account &amp;gt; Preferences.&lt;br /&gt;
&lt;br /&gt;
===Auto logout===&lt;br /&gt;
From Moodle LMS 4.3 onwards, you can enhance security by enforcing automatic logout for your users when they leave or close the app, or it goes to the background.&lt;br /&gt;
&lt;br /&gt;
You can even set your own custom re-authentication time, to suit your organisation&#039;s security requirements. &lt;br /&gt;
&lt;br /&gt;
To activate auto logout, go to Site administration &amp;gt; Mobile app &amp;gt; Mobile authentication.&lt;br /&gt;
&lt;br /&gt;
This feature is particularly effective when paired with Biometric login, since that streamlines the login process for your users.&lt;br /&gt;
&lt;br /&gt;
== Customise your app theme ==&lt;br /&gt;
The app can also retrieve your custom styles from your Moodle site. Since the app is a HTML5 app, you can safely apply any CSS, CSS2 and CSS3 style.&lt;br /&gt;
&lt;br /&gt;
Go to &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Mobile app &amp;gt; Mobile appearance&#039;&#039; and enter in the mobilecssurl field a valid URL pointing to a CSS file containing your custom styles.&lt;br /&gt;
&lt;br /&gt;
The CSS should be placed inside your Moodle installation (in your custom theme or inside a local plugin).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For example:&#039;&#039;&#039; &#039;&#039;https://mymoodlesite.com/theme/mytheme/style/mymobileapp.css&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Once the user is logged in the app, remote CSS files for applying your custom styles are regularly retrieved.&lt;br /&gt;
&lt;br /&gt;
Notice that on the first time a user opens the app, he will see the default &amp;quot;orange&amp;quot; style. Your custom styles will be applied once the user has added a site in the app.&lt;br /&gt;
&lt;br /&gt;
For further information, see the dev docs [https://docs.moodle.org/dev/Moodle%20Mobile%20Themes Moodle Mobile Themes].&lt;br /&gt;
&lt;br /&gt;
If you want your own custom branding for your organization, Moodle offers the The [https://moodle.com/branded-app Branded Moodle Mobile app] service, please visit https://moodle.com/app/ for more information.&lt;br /&gt;
== Moodle Mobile additional features plugin for old Moodle sites ==&lt;br /&gt;
For old Moodle sites it is recommended to install the [[Moodle Mobile additional features]] plugin.&lt;br /&gt;
== Notifications ==&lt;br /&gt;
You might find them annoying but push notifications keeps you and your users informed and updated on everything about the app. Moodle only send useful and important notifications such as new features or service disruptions.&lt;br /&gt;
&lt;br /&gt;
Enabling push notifications is easy! An administrator can enable it by connecting their Moodle site/s to our free Notifications server available (only) for registered Moodle sites. &lt;br /&gt;
&lt;br /&gt;
An access key can be obtained via &#039;&#039;Site administration &amp;gt; General &amp;gt; Messaging &amp;gt; Notification settings&#039;&#039;. Be sure the &#039;Mobile&#039; is enabled and then click the link to settings, on the next page select &#039;&#039;Request access key&#039;&#039;. (For Moodle site versions 3.5 and 3.6 an access key can be obtained via &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Message outputs &amp;gt; Manage message outputs&#039;&#039;. Then by clicking the link to the Mobile settings, on the next page select &#039;&#039;Request access key&#039;&#039;.)&lt;br /&gt;
&lt;br /&gt;
The full guide on enabling push notifications can be found here: [[Mobile app notifications]]&lt;br /&gt;
== App banners ==&lt;br /&gt;
[[File:app banner.png|thumb|Moodle Mobile app banner]]&lt;br /&gt;
App banners let your users know a mobile app is available for the site. App banners are only displayed when accessing the site using a mobile browser.&lt;br /&gt;
&lt;br /&gt;
App banners are disabled by default. They can be enabled in &#039;Mobile appearance&#039; in the Site administration.&lt;br /&gt;
&lt;br /&gt;
If you are using a custom mobile app, you must provide the unique identifier for the iOS and Android app; if you use the Moodle Mobile app, the settings may be left as default.&lt;br /&gt;
&lt;br /&gt;
Please, notice the following:&lt;br /&gt;
* App banners for iOS devices (iPhone, iPad or iPod) are only shown when accessing the site using the Safari browser and the mobile app is not installed on the device yet. App banners are not displayed when using private browsing either.&lt;br /&gt;
* App banners for Android devices are only shown in very recent Chrome browser versions and when the app is not installed. Note also that Chrome uses an engagement heuristic that will display the banner only under certain conditions, like interactions with the site, the last time you interacted with it, etc. You can remove the engagement restriction check by disabling this special chrome flag: chrome://flags/#bypass-app-banner-engagement-checks. Please note also that certain custom Android versions (such as Samsung and Huawei ones) do not always support this feature&lt;br /&gt;
&lt;br /&gt;
==&#039;Get the mobile app&#039; link==&lt;br /&gt;
In Moodle 3.4 onwards, the link &#039;Get the mobile app&#039; in the footer of each page on the site encourages users to make use of the mobile app. &lt;br /&gt;
&lt;br /&gt;
By default, the link is https://download.moodle.org/mobile however the setting &#039;App download page&#039; can be changed e.g. for sites using a branded mobile app.&lt;br /&gt;
&lt;br /&gt;
If mobile services are not enabled for the site, then the &#039;Get the mobile app&#039; link is not displayed. &lt;br /&gt;
&lt;br /&gt;
To prevent the &#039;Get the mobile app&#039; link being displayed, simply remove the URL from the &#039;App download page&#039; setting and save changes.&lt;br /&gt;
== Configuring the app from your site ==&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Please notice that the type and number of features that you can customise depend on your Moodle Apps plan, you can register for free on https://apps.moodle.com to check the different plans.&lt;br /&gt;
&lt;br /&gt;
In Moodle 3.3 onwards, or with the [[Moodle Mobile additional features]] plugin, settings in the Site administration enable admins to configure the app.&lt;br /&gt;
* In Moodle 3.3 onwards go to &#039;&#039;Site administration &amp;gt; Mobile features&#039;&#039;&lt;br /&gt;
* In sites with the Moodle Mobile additional features plugin installed, go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Local plugins &amp;gt; Mobile additional features&#039;&#039;&lt;br /&gt;
===Force log out===&lt;br /&gt;
Replace the Change site option to &amp;quot;Log out&amp;quot; so that users must enter their credentials on their next access. This is useful for custom mobile apps, as there is no reason for users wanting to switch to a different site.&lt;br /&gt;
===Disabled features===&lt;br /&gt;
The mobile app may be simplified by removing unwanted features. Some items may already be not available in the app because they are not enabled on your site.&lt;br /&gt;
&lt;br /&gt;
Options to remove include:&lt;br /&gt;
&lt;br /&gt;
* Offline use&lt;br /&gt;
* Blocks (Note that from &#039;&#039;&#039;Moodle 4.3.1&#039;&#039;&#039; the Global search and Search forums blocks can be removed.)&lt;br /&gt;
* Comments&lt;br /&gt;
* Ratings&lt;br /&gt;
* Tags&lt;br /&gt;
* Create new account&lt;br /&gt;
* Responsive menu items &lt;br /&gt;
* Main menu&lt;br /&gt;
** Site home&lt;br /&gt;
** My courses&lt;br /&gt;
** Dashboard&lt;br /&gt;
** Calendar&lt;br /&gt;
** Notifications&lt;br /&gt;
** Messages&lt;br /&gt;
** Grades&lt;br /&gt;
** My learning plans&lt;br /&gt;
** Blog&lt;br /&gt;
** Files&lt;br /&gt;
** Web page&lt;br /&gt;
** Help&lt;br /&gt;
* Course&lt;br /&gt;
** Blocks&lt;br /&gt;
** Blog&lt;br /&gt;
** Search&lt;br /&gt;
** Competencies&lt;br /&gt;
** Participants&lt;br /&gt;
** Grades&lt;br /&gt;
** Course completion&lt;br /&gt;
** Notes&lt;br /&gt;
** Download course (new in 3.5)&lt;br /&gt;
** Download courses (new in 3.5)&lt;br /&gt;
* User&lt;br /&gt;
** Blog&lt;br /&gt;
** Badges&lt;br /&gt;
** Competencies&lt;br /&gt;
** Course completion&lt;br /&gt;
** Grades&lt;br /&gt;
** Send message&lt;br /&gt;
** Add contact&lt;br /&gt;
** Block contact&lt;br /&gt;
** Add a new note&lt;br /&gt;
** User picture&lt;br /&gt;
* Files&lt;br /&gt;
** Private files&lt;br /&gt;
** Ste files&lt;br /&gt;
** Upload&lt;br /&gt;
* Modules (Each module can be disabled separately)&lt;br /&gt;
* Blocks (Each block available in the app can be disabled separately)&lt;br /&gt;
&lt;br /&gt;
===Custom menu items===&lt;br /&gt;
Additional items can be added to the app main menu (the more menu), such as a link to a different grade book.&lt;br /&gt;
&lt;br /&gt;
In order to do so go to &amp;quot;Site administration &amp;gt; Mobile features &amp;gt; Custom menu items&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Each custom menu item should have the format: item text, link URL, link-opening method and language code (optional, for displaying the item to users of the specified language only), icon (optional, the name of the icon from https://ionicons.com) separated by pipe characters.&lt;br /&gt;
&lt;br /&gt;
Possible link-opening methods are:&lt;br /&gt;
* app - for linking to an activity supported by the app i.e. almost all activity types, as listed in [[Moodle Mobile features]].&lt;br /&gt;
* inappbrowser - for linking to external URLs or site functionalities not supported by the app. The link will open in a browser inside the app overlaying the complete screen.&lt;br /&gt;
* browser - as for inappbrowser except that the link will instead open in the device default browser outside the app.&lt;br /&gt;
* embedded - as for inappbrowser except that the link will instead open in an iframe in a new page in the app. (For this option you may need to enable the admin setting &amp;quot;Allow frame embedding&amp;quot; (allowframembedding)&lt;br /&gt;
Tip: If you add a custom menu item and save changes, then it doesn&#039;t appear in the app main menu, double check that the item is correctly formatted.&lt;br /&gt;
&lt;br /&gt;
Please, note that if custom menu items have the same URL, same link-opening method, and same language only the first custom menu item will be shown.&lt;br /&gt;
&lt;br /&gt;
Please, note that if the app is using a language not indicated in the previous list, the first language in the list will be used. (So if you have a custom menu item in English (en) and French (fr), and the app is using Spanish the user will still see that custom menu item in English)&lt;br /&gt;
&lt;br /&gt;
If you want options tied to a language, you can append _only to the language code, for example:&lt;br /&gt;
en_only&lt;br /&gt;
es_only, will display the custom menu item only when the app language is English or Spanish.&lt;br /&gt;
&lt;br /&gt;
Example of a menu item (it will display a home icon followed by Academy information linking to the URL indicated):&lt;br /&gt;
 Academy information|https://yoursite.com/mod/page/view.php?id=X |app|en|home&lt;br /&gt;
&lt;br /&gt;
===Responsive menu items===&lt;br /&gt;
From 3.7 onwards menu items on bottom tabs are moved to the side of the screen on big screens. Also the number of items displayed on the menu may vary:&lt;br /&gt;
* On small screens (usually phones) from 2 to 5 items will be displayed depending on the size of the screen.&lt;br /&gt;
* On big screens (usually tablets an desktop version) more than 2 items will be displayed without limit.&lt;br /&gt;
If &#039;&#039;&#039;Responsive menu items&#039;&#039;&#039; is selected in Disabled features items will be displayed in side of bottom anyway but 5 items will be displayed in all cases without depending on the size of the screen.&lt;br /&gt;
===Custom language strings ===&lt;br /&gt;
Words and phrases displayed in the app can be customised via the &amp;quot;Site administration &amp;gt; Mobile app features &amp;gt; Custom language strings&amp;quot; (customlangstrings) setting.&lt;br /&gt;
&lt;br /&gt;
Enter each custom language string on a new line with format: string identifier, custom language string and language code, separated by pipe characters. For example:&lt;br /&gt;
 core.user.student|Learner|en&lt;br /&gt;
 core.user.student|Aprendiz|es&lt;br /&gt;
The complete list of string identifiers is listed in https://latest.apps.moodledemo.net/assets/lang/en.json&lt;br /&gt;
&lt;br /&gt;
The string identifier is before the colon. &lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;core.user.student&amp;quot;: &amp;quot;Student&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
means that the string &amp;quot;Student&amp;quot; has string identifier &amp;quot;core.user.student&amp;quot;.&lt;br /&gt;
==Analytics and stats==&lt;br /&gt;
&lt;br /&gt;
===Usage statistics from your Moodle site===&lt;br /&gt;
&lt;br /&gt;
To retrieve information about the Moodle app usage, site administrators and teachers can check the site, course or activity logs.&lt;br /&gt;
&lt;br /&gt;
* Site logs are available via &amp;quot;Site administration &amp;gt; Reports &amp;gt; Logs&amp;quot;&lt;br /&gt;
* Course logs are available via the course options (on top of the course page) &amp;quot;Reports &amp;gt; Logs&amp;quot;&lt;br /&gt;
* Activity logs are available via the activity page, on top you will find &amp;quot;Reports &amp;gt; Logs&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Among the log filters, there is a field called &amp;quot;All sources&amp;quot; with an option &amp;quot;Web Service/ws&amp;quot; that can be used to filter the entry logs generated by the mobile application.&lt;br /&gt;
&lt;br /&gt;
You can compare the number of log entries generated by the &amp;quot;Web&amp;quot; versus &amp;quot;Web Service&amp;quot; (mobile app) to have an overall idea about how your users use the platform.&lt;br /&gt;
&lt;br /&gt;
Please, notice that if you have custom &amp;quot;Web Services&amp;quot; or an installed plugin that uses Web Services, you will also see entries for them under the same filter.&lt;br /&gt;
&lt;br /&gt;
If you have access to the site database, the table &amp;quot;external_tokens&amp;quot; has a &amp;quot;lastaccess&amp;quot; timestamp field that could be used to obtain active users of the app every day.&lt;br /&gt;
&lt;br /&gt;
===Integration with Matomo analytics===&lt;br /&gt;
Note: This feature is available for [https://apps.moodle.com Premium app plans and Branded Moodle Apps]. To use this integration, you will need to have your own instance of Matomo. &lt;br /&gt;
&lt;br /&gt;
Matomo is an open source web analytics tool that helps you monitor traffic to your Moodle site, including app activity. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Connecting to your Matomo instance in the Apps portal&#039;&#039;&#039;&lt;br /&gt;
[[File:Captura de pantalla 2023-11-14 a las 12.03.36.png|thumb|Moodle App Matomo Integration set up]]&lt;br /&gt;
To use Matomo to track app activity on your Moodle site, you will need to have your own instance of Matomo analytics, and to add your Moodle site as one of your measurable websites (see instructions on [https://matomo.org/faq/how-to/create-and-manage-websites/ Matomo’s website]). Then, follow these steps:&lt;br /&gt;
# Log in to the [https://apps.moodle.com Apps portal]. &lt;br /&gt;
# Go to &#039;&#039;&#039;App customisation&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;Analytics&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;Matomo analytics&#039;&#039;&#039;.&lt;br /&gt;
# Check &#039;&#039;&#039;Track app activity&#039;&#039;&#039;.&lt;br /&gt;
# Add your &#039;&#039;&#039;Matomo URL&#039;&#039;&#039; - that&#039;s the URL of your Matomo instance, for example https://yoursite.matomo.cloud.&lt;br /&gt;
# Add the &#039;&#039;&#039;Website ID&#039;&#039;&#039; associated with your Moodle site in Matomo. To obtain this ID:&lt;br /&gt;
## Log in to your Matomo account.&lt;br /&gt;
## Go to &#039;&#039;&#039;Administration&#039;&#039;&#039; using the gear icon on the right side of the top navigation bar.&lt;br /&gt;
## On the left-hand panel, select &#039;&#039;&#039;Websites&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;Manage&#039;&#039;&#039;.&lt;br /&gt;
## In your list of measurables, find the Moodle site in which you want to track app activity. The &#039;&#039;&#039;ID&#039;&#039;&#039; of the measurable is the &#039;&#039;&#039;Website ID&#039;&#039;&#039; you need to enter in the apps portal.&lt;br /&gt;
# Click &#039;&#039;&#039;Save changes&#039;&#039;&#039; to establish the connection and start tracking app activity.&lt;br /&gt;
# If you&#039;d like to stop tracking at any time, uncheck &#039;&#039;&#039;Track app activity&#039;&#039;&#039; and then save changes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To filter Matomo data to isolate mobile app usage from Moodle site interactions, follow these steps:&lt;br /&gt;
[[File:Captura de pantalla 2023-11-14 a las 12.05.05.png|thumb|Moodle App Matomo referrer set-up]]&lt;br /&gt;
# Log in to your Matomo account.&lt;br /&gt;
# Click &#039;&#039;&#039;All visits&#039;&#039;&#039; at the top of the page&lt;br /&gt;
# Create a custom segment by applying this configuration: “Referrer URL” “is” “https://moodlemobile”&lt;br /&gt;
# To only see Moodle site interactions, do the following: “Referrer URL” “is not” “https://moodlemobile”&lt;br /&gt;
&lt;br /&gt;
Please notice that the integration with Matomo does not work offline.&lt;br /&gt;
&lt;br /&gt;
===Google Analytics for Firebase===&lt;br /&gt;
Only available when purchasing a [https://moodle.com/branded-app/ Branded Moodle App]. &lt;br /&gt;
&lt;br /&gt;
Google Analytics for Firebase is a free tool that provides valuable insights and data about how users interact with mobile apps.&lt;br /&gt;
&lt;br /&gt;
Please notice that the integration with Google Analytics for Firebase does not work offline.&lt;br /&gt;
&lt;br /&gt;
===Google Play and Apple App Store statistics===&lt;br /&gt;
&lt;br /&gt;
If you have a custom mobile application, you can access statistics about app downloads and user engagement such as weekly active users and devices.&lt;br /&gt;
&lt;br /&gt;
Google play:&lt;br /&gt;
# Go to Google Play console: https://play.google.com/console&lt;br /&gt;
# Select your app from the list.&lt;br /&gt;
# Navigate to specific tabs, such as &amp;quot;Statistics&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apple App Store:&lt;br /&gt;
# Log in to App Store Connect: https://appstoreconnect.apple.com/&lt;br /&gt;
# Go to &amp;quot;App Analytics&amp;quot; from the dashboard.&lt;br /&gt;
&lt;br /&gt;
==Web services token duration==&lt;br /&gt;
From Moodle 3.4 onwards, an admin can set how long a web services token created by a user (for example via the mobile app) is valid. (In previous versions of Moodle a token was valid for 3 months.)&lt;br /&gt;
&lt;br /&gt;
The setting that dictates the previous &#039;User created token duration&#039; (tokenduration) can be found under the Security section.&lt;br /&gt;
==App&#039;s cache==&lt;br /&gt;
The app caches WebService requests to decrease data usage and increase the app&#039;s speed. When the app needs to get some data from Moodle, it will use a cached request as long as it isn&#039;t expired.&lt;br /&gt;
&lt;br /&gt;
This cache was improved in Moodle App 3.7.0, now there are several cache times depending on the WS being called. This means that some requests will expire more often than others. Also, if the user isn&#039;t using a WiFi connection, the expiration time will also be longer to decrease the data usage. These cache times cannot be configured using a Moodle setting.&lt;br /&gt;
==See also==&lt;br /&gt;
* [https://moodle.academy/course/view.php?id=100 Moodle App Configuration]- a free self-paced course for admins on Moodle Academy.&lt;br /&gt;
* [[Moodle Mobile FAQ]] for other administration-related mobile app questions.&lt;br /&gt;
* [[Moodle app security]]&lt;br /&gt;
* [https://docs.moodle.org/dev/Moodle%20Mobile%20debugging%20WS%20requests dev:Moodle Mobile debugging WS requests] - a guide to helping you find and report problems with the Moodle Mobile app on your site&lt;br /&gt;
* [https://docs.moodle.org/dev/%20Moodle%20Mobile%20Roadmap dev: Moodle Mobile Roadmap]&lt;br /&gt;
* [https://docs.moodle.org/dev/Moodle%20Mobile%20release%20notes dev:Moodle Mobile release notes]&lt;br /&gt;
* [https://docs.moodle.org/dev/Moodle%20Mobile Moodle Mobile developer docs]&lt;br /&gt;
* [[Moodle Mobile availability plugin]]&lt;br /&gt;
* [[Mobile web services]]&lt;br /&gt;
[https://docs.moodle.org/fr/ Guide mobile pour administrateurs]&lt;br /&gt;
[https://docs.moodle.org/es/Moodle app guía para administradores]&lt;br /&gt;
[https://docs.moodle.org/de/Moodle App - Anleitung für Administrator/innen]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_guide_for_admins&amp;diff=153737</id>
		<title>Moodle app guide for admins</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_guide_for_admins&amp;diff=153737"/>
		<updated>2025-07-28T07:08:59Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Usage statistics from your Moodle site */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
==Enable mobile services on your site==&lt;br /&gt;
Your site needs to have mobile access enabled so users can use the mobile app.&lt;br /&gt;
&lt;br /&gt;
For sites using https, mobile access is enabled by default in new installations of Moodle 3.0 onwards.&lt;br /&gt;
&lt;br /&gt;
For http sites, mobile access can be enabled by an administrator as follows:&lt;br /&gt;
# In &#039;&#039;Site administration &amp;gt; Mobile app &amp;gt; Mobile settings&#039;&#039; tick the &#039;Enable web services for mobile devices&#039; checkbox. (For 4.0 version: In &#039;&#039;Site administration &amp;gt; Advanced features&#039;&#039; tick the &#039;Enable web services for mobile devices&#039; checkbox&lt;br /&gt;
# Click the button to save changes.&lt;br /&gt;
If your site uses a [https://en.wikipedia.org/wiki/Transport_Layer_Security SSL certificate], it must be a trusted certificate. For security reasons the app doesn&#039;t work with self-signed certificates.&lt;br /&gt;
&lt;br /&gt;
Please, verify that your certificate is valid via: https://www.geocerts.com/ssl_checker (you shouldn&#039;t see any warning).&lt;br /&gt;
&lt;br /&gt;
If your site has the /login directory protected (frequently done when using the Shibboleth authentication method), you must enable access to the login/token.php script.&lt;br /&gt;
===Frame embedding===&lt;br /&gt;
If your sites uses [https://en.wikipedia.org/wiki/ReCAPTCHA reCaptcha], Vimeo videos or custom menu items (as described bellow) you must enable the admin setting &amp;quot;Allow frame embedding&amp;quot; (allowframembedding). Please, note this is not necessary since Moodle 3.7&lt;br /&gt;
===Is your site behind a proxy, or load balancer or complex network infrastructure?===&lt;br /&gt;
In that case, you may need to configure the &amp;quot;Ignore reserver proxies&amp;quot; settings in Site administration &amp;gt; Administration &amp;gt; Server &amp;gt; HTTP&lt;br /&gt;
==Register your site on the Moodle Apps Portal==&lt;br /&gt;
We strongly recommend you to register your site for free on the Moodle Apps portal: https://apps.moodle.com&lt;br /&gt;
&lt;br /&gt;
You will be able to retrieve statistics like the number of active user devices receiving Push Notifications and upgrade to a Pro/Premium plan for enjoying exclusive features.&lt;br /&gt;
==Simplify user onboarding==&lt;br /&gt;
Upon opening the Moodle app, first-time users encounter a &amp;quot;Your site&amp;quot; field, where they have to input the URL of their Moodle site to access their courses. To ensure a smooth onboarding experience for new users, follow these steps:&lt;br /&gt;
# Enable the &#039;&#039;&#039;Site finder&#039;&#039;&#039; feature that allows users to find their Moodle site by name, eliminating the need to manually enter the site URL. To enable this feature, view [[Moodle app guide for admins#Have your site listed in the Moodle app site finder|Have your site listed in the Moodle app site finder]] below.&lt;br /&gt;
# Enable the &#039;&#039;&#039;QR login&#039;&#039;&#039; feature (view [[Moodle app guide for admins#QR Login|instructions]] below). This feature allows users to scan a QR code available on their Moodle profile to access their Moodle site directly from the app. &lt;br /&gt;
# For Android users and Moodle LMS 4.3 and later: Encourage users to install the Moodle app by following the &#039;&#039;&#039;Get the mobile app&#039;&#039;&#039; link at the bottom of any Moodle page (located within the &amp;quot;&#039;&#039;&#039;?&#039;&#039;&#039;&amp;quot; icon on the desktop version). When users install the app through this link, they will be automatically redirected to their site login screen, eliminating the need to manually enter the site URL.&lt;br /&gt;
# Alternatively, you can create a dedicated help page for the Moodle app. This help page should include a link to the Google Play version of the app and clearly indicate the site URL referrer. For example, if your Moodle site is mymoodlesite.com the link will be https://play.google.com/store/apps/details?id=com.moodle.moodlemobile&amp;amp;referrer=siteurl%3Dhttps%3A%2F%2Fmymoodlesite.com&lt;br /&gt;
Please note that options 3&amp;amp;4 are not compatible with Google Workspace accounts (the installation referrer will be ignored in that case).&lt;br /&gt;
==Have your site listed in the Moodle app site finder==&lt;br /&gt;
The Moodle apps site finder enables a user to easily find their Moodle site by entering the name (no need to enter the site URL)&lt;br /&gt;
===How can I have my site listed in the Moodle app site finder?===&lt;br /&gt;
Your site will be automatically listed in the site finder if:&lt;br /&gt;
* either your site is registered and listed with a link on [https://stats.moodle.org/sites/ Registered sites] and has over five hundred mobile users and you have been using the Moodle app for over a year&lt;br /&gt;
* or you have purchased a [https://moodle.com/app/ Pro or Premium Moodle app subscription].&lt;br /&gt;
You can arrange for your site to be listed in the site finder as follows:&lt;br /&gt;
* If your site is hosted by a Moodle Partner, please contact them to request for your site to be listed. &lt;br /&gt;
* If you have a MoodleCloud site, please log in to the Moodle Apps Portal where you will find an option to have your site listed.&lt;br /&gt;
Otherwise, to have your site listed in the site finder, you need to purchase a [https://moodle.com/app/ Pro or Premium Moodle app subscription] from the Moodle Apps Portal.&lt;br /&gt;
===I don’t want my site listed in the Moodle app site finder. How can I remove it?===&lt;br /&gt;
You can remove your site from the site finder as follows:&lt;br /&gt;
# Log in to the [https://apps.moodle.com/ Moodle Apps Portal]. (If you don&#039;t yet have an account, you can create one for free.)&lt;br /&gt;
# Go to ‘App customisation’ -&amp;gt; ‘Site Listing’ and uncheck the option ‘Visible’ then save changes. &lt;br /&gt;
Your site will then be immediately removed from the site finder.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can remove your site from the site finder by updating your site registration:&lt;br /&gt;
# Log in to your Moodle site as admin and go to ‘Site administration’ -&amp;gt; Registration.&lt;br /&gt;
# Change ‘Site listing’ to either ‘Do not list my site’ or ‘Only display my site name’.&lt;br /&gt;
Your site will then be removed from the site finder within 24 hours.&lt;br /&gt;
==Mobile authentication==&lt;br /&gt;
&lt;br /&gt;
===MFA===&lt;br /&gt;
The Moodle mobile app does not support MFA natively yet, however, you can redirect users to a browser to force the authentication process to behave exactly as Moodle LMS. You can do the previous via Site administration &amp;gt; Mobile authentication &amp;gt; Type of login and then select any of the options that mention browser.&lt;br /&gt;
&lt;br /&gt;
===SSO authentication method===&lt;br /&gt;
If your site uses a SSO authentication method (Shibboleth, LDAP SSO, OAuth...), then select via a browser window or via an embedded browser for &#039;Type of login&#039; (typeoflogin) in &#039;Mobile authentication&#039; in the Site administration. (This setting is provided for older pre-Moodle 3.2 sites via the [[Moodle Mobile additional features]] plugin.)&lt;br /&gt;
&lt;br /&gt;
The options &#039;browser window&#039; and &#039;embedded browser&#039; are very similar; the only difference is when redirecting the user to enter their credentials in the site, the site will be opened in the device&#039;s default browser (for browser window) or the site will be opened &amp;quot;embedded&amp;quot; in the mobile app (for embedded browser). The user experience is better in embedded browser, but not all the authentication plugins will work in embedded browser (for example, if JavaScript popups are required they must use the &#039;browser window&#039;). The admin should check whether both options work, and if so, choose &#039;embedded browser&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are using Google OAuth you will have to use the &#039;browser window&#039; method because Google recently blocked authentication via &#039;embedded browsers&#039;.&lt;br /&gt;
&lt;br /&gt;
If your organisation uses a custom branded app and &#039;Type of login&#039; is set to &#039;Via a browser window&#039; or &#039;Via embedded browser&#039;, then a URL scheme (forcedurlscheme) may be set. This will result in only the custom branded app working for the site: the official Moodle Mobile app will not work.&lt;br /&gt;
&lt;br /&gt;
===QR Login===&lt;br /&gt;
Please note that this feature requires Moodle 3.9 and is only available if you are enjoying a [https://moodle.com/app/ Pro/Premium plan].&lt;br /&gt;
&lt;br /&gt;
As a site administrator, you can enable login via QR. Please go to Site administration &amp;gt; Mobile app &amp;gt; Mobile authentication and select &amp;quot;QR code with automatic login&amp;quot; in the &amp;quot;QR code access&amp;quot; setting&lt;br /&gt;
&lt;br /&gt;
Once enabled, your students will be able to login in the app by scanning a QR code available on their Moodle site profile.&lt;br /&gt;
===Biometric Login===&lt;br /&gt;
This feature is only available to Pro and [https://apps.moodle.com Premium plan customers].&lt;br /&gt;
&lt;br /&gt;
Biometric login allows your users to log in to your site via the Moodle App on Android and iOS devices using their fingerprint, face recognition or any other biometric option available on their mobile device. This makes the login process simpler, faster and more secure, and is specially useful if Autologout is enabled on your site.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enabling biometric login for your site&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can enable Biometric login as an authentication method through the Moodle Apps Portal, going to App customisation &amp;gt; Authentication &amp;gt; Biometric login, and then selecting “Enable biometric login”. Your users will then be able to choose whether they want to use Biometric login or not.&lt;br /&gt;
&lt;br /&gt;
For security reasons, users may be prompted to re-enter their credentials periodically. This interval is determined by the &#039;User created token duration&#039; (tokenduration) security setting, which is set to a default duration of three months. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setting up biometric login as a user&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To use biometric login in the Moodle App, users must have biometric authentication enabled in their own device&#039;s settings (e.g. FaceID or TouchID for iOs users, or Fingerprints for Android users).&lt;br /&gt;
&lt;br /&gt;
The first three times users log in to the app after you enable Biometric login, they will see a notification telling them that they can activate this new authentication method to access the app (provided that they have biometric authentication enabled in their device&#039;s settings).&lt;br /&gt;
&lt;br /&gt;
Users can activate and deactivate their biometric login any time in the Moodle App in User account &amp;gt; Preferences.&lt;br /&gt;
===Auto logout===&lt;br /&gt;
From Moodle LMS 4.3 onwards, you can enhance security by enforcing automatic logout for your users when they leave or close the app, or it goes to the background.&lt;br /&gt;
&lt;br /&gt;
You can even set your own custom re-authentication time, to suit your organisation&#039;s security requirements. &lt;br /&gt;
&lt;br /&gt;
To activate auto logout, go to Site administration &amp;gt; Mobile app &amp;gt; Mobile authentication.&lt;br /&gt;
&lt;br /&gt;
This feature is particularly effective when paired with Biometric login, since that streamlines the login process for your users.&lt;br /&gt;
&lt;br /&gt;
== Customise your app theme ==&lt;br /&gt;
The app can also retrieve your custom styles from your Moodle site. Since the app is a HTML5 app, you can safely apply any CSS, CSS2 and CSS3 style.&lt;br /&gt;
&lt;br /&gt;
Go to &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Mobile app &amp;gt; Mobile appearance&#039;&#039; and enter in the mobilecssurl field a valid URL pointing to a CSS file containing your custom styles.&lt;br /&gt;
&lt;br /&gt;
The CSS should be placed inside your Moodle installation (in your custom theme or inside a local plugin).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For example:&#039;&#039;&#039; &#039;&#039;https://mymoodlesite.com/theme/mytheme/style/mymobileapp.css&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Once the user is logged in the app, remote CSS files for applying your custom styles are regularly retrieved.&lt;br /&gt;
&lt;br /&gt;
Notice that on the first time a user opens the app, he will see the default &amp;quot;orange&amp;quot; style. Your custom styles will be applied once the user has added a site in the app.&lt;br /&gt;
&lt;br /&gt;
For further information, see the dev docs [https://docs.moodle.org/dev/Moodle%20Mobile%20Themes Moodle Mobile Themes].&lt;br /&gt;
&lt;br /&gt;
If you want your own custom branding for your organization, Moodle offers the The [https://moodle.com/branded-app Branded Moodle Mobile app] service, please visit https://moodle.com/app/ for more information.&lt;br /&gt;
== Moodle Mobile additional features plugin for old Moodle sites ==&lt;br /&gt;
For old Moodle sites it is recommended to install the [[Moodle Mobile additional features]] plugin.&lt;br /&gt;
== Notifications ==&lt;br /&gt;
You might find them annoying but push notifications keeps you and your users informed and updated on everything about the app. Moodle only send useful and important notifications such as new features or service disruptions.&lt;br /&gt;
&lt;br /&gt;
Enabling push notifications is easy! An administrator can enable it by connecting their Moodle site/s to our free Notifications server available (only) for registered Moodle sites. &lt;br /&gt;
&lt;br /&gt;
An access key can be obtained via &#039;&#039;Site administration &amp;gt; General &amp;gt; Messaging &amp;gt; Notification settings&#039;&#039;. Be sure the &#039;Mobile&#039; is enabled and then click the link to settings, on the next page select &#039;&#039;Request access key&#039;&#039;. (For Moodle site versions 3.5 and 3.6 an access key can be obtained via &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Message outputs &amp;gt; Manage message outputs&#039;&#039;. Then by clicking the link to the Mobile settings, on the next page select &#039;&#039;Request access key&#039;&#039;.)&lt;br /&gt;
&lt;br /&gt;
The full guide on enabling push notifications can be found here: [[Mobile app notifications]]&lt;br /&gt;
== App banners ==&lt;br /&gt;
[[File:app banner.png|thumb|Moodle Mobile app banner]]&lt;br /&gt;
App banners let your users know a mobile app is available for the site. App banners are only displayed when accessing the site using a mobile browser.&lt;br /&gt;
&lt;br /&gt;
App banners are disabled by default. They can be enabled in &#039;Mobile appearance&#039; in the Site administration.&lt;br /&gt;
&lt;br /&gt;
If you are using a custom mobile app, you must provide the unique identifier for the iOS and Android app; if you use the Moodle Mobile app, the settings may be left as default.&lt;br /&gt;
&lt;br /&gt;
Please, notice the following:&lt;br /&gt;
* App banners for iOS devices (iPhone, iPad or iPod) are only shown when accessing the site using the Safari browser and the mobile app is not installed on the device yet. App banners are not displayed when using private browsing either.&lt;br /&gt;
* App banners for Android devices are only shown in very recent Chrome browser versions and when the app is not installed. Note also that Chrome uses an engagement heuristic that will display the banner only under certain conditions, like interactions with the site, the last time you interacted with it, etc. You can remove the engagement restriction check by disabling this special chrome flag: chrome://flags/#bypass-app-banner-engagement-checks. Please note also that certain custom Android versions (such as Samsung and Huawei ones) do not always support this feature&lt;br /&gt;
&lt;br /&gt;
==&#039;Get the mobile app&#039; link==&lt;br /&gt;
In Moodle 3.4 onwards, the link &#039;Get the mobile app&#039; in the footer of each page on the site encourages users to make use of the mobile app. &lt;br /&gt;
&lt;br /&gt;
By default, the link is https://download.moodle.org/mobile however the setting &#039;App download page&#039; can be changed e.g. for sites using a branded mobile app.&lt;br /&gt;
&lt;br /&gt;
If mobile services are not enabled for the site, then the &#039;Get the mobile app&#039; link is not displayed. &lt;br /&gt;
&lt;br /&gt;
To prevent the &#039;Get the mobile app&#039; link being displayed, simply remove the URL from the &#039;App download page&#039; setting and save changes.&lt;br /&gt;
== Configuring the app from your site ==&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Please notice that the type and number of features that you can customise depend on your Moodle Apps plan, you can register for free on https://apps.moodle.com to check the different plans.&lt;br /&gt;
&lt;br /&gt;
In Moodle 3.3 onwards, or with the [[Moodle Mobile additional features]] plugin, settings in the Site administration enable admins to configure the app.&lt;br /&gt;
* In Moodle 3.3 onwards go to &#039;&#039;Site administration &amp;gt; Mobile features&#039;&#039;&lt;br /&gt;
* In sites with the Moodle Mobile additional features plugin installed, go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Local plugins &amp;gt; Mobile additional features&#039;&#039;&lt;br /&gt;
===Force log out===&lt;br /&gt;
Replace the Change site option to &amp;quot;Log out&amp;quot; so that users must enter their credentials on their next access. This is useful for custom mobile apps, as there is no reason for users wanting to switch to a different site.&lt;br /&gt;
===Disabled features===&lt;br /&gt;
The mobile app may be simplified by removing unwanted features. Some items may already be not available in the app because they are not enabled on your site.&lt;br /&gt;
&lt;br /&gt;
Options to remove include:&lt;br /&gt;
&lt;br /&gt;
* Offline use&lt;br /&gt;
* Blocks (Note that from &#039;&#039;&#039;Moodle 4.3.1&#039;&#039;&#039; the Global search and Search forums blocks can be removed.)&lt;br /&gt;
* Comments&lt;br /&gt;
* Ratings&lt;br /&gt;
* Tags&lt;br /&gt;
* Create new account&lt;br /&gt;
* Responsive menu items &lt;br /&gt;
* Main menu&lt;br /&gt;
** Site home&lt;br /&gt;
** My courses&lt;br /&gt;
** Dashboard&lt;br /&gt;
** Calendar&lt;br /&gt;
** Notifications&lt;br /&gt;
** Messages&lt;br /&gt;
** Grades&lt;br /&gt;
** My learning plans&lt;br /&gt;
** Blog&lt;br /&gt;
** Files&lt;br /&gt;
** Web page&lt;br /&gt;
** Help&lt;br /&gt;
* Course&lt;br /&gt;
** Blocks&lt;br /&gt;
** Blog&lt;br /&gt;
** Search&lt;br /&gt;
** Competencies&lt;br /&gt;
** Participants&lt;br /&gt;
** Grades&lt;br /&gt;
** Course completion&lt;br /&gt;
** Notes&lt;br /&gt;
** Download course (new in 3.5)&lt;br /&gt;
** Download courses (new in 3.5)&lt;br /&gt;
* User&lt;br /&gt;
** Blog&lt;br /&gt;
** Badges&lt;br /&gt;
** Competencies&lt;br /&gt;
** Course completion&lt;br /&gt;
** Grades&lt;br /&gt;
** Send message&lt;br /&gt;
** Add contact&lt;br /&gt;
** Block contact&lt;br /&gt;
** Add a new note&lt;br /&gt;
** User picture&lt;br /&gt;
* Files&lt;br /&gt;
** Private files&lt;br /&gt;
** Ste files&lt;br /&gt;
** Upload&lt;br /&gt;
* Modules (Each module can be disabled separately)&lt;br /&gt;
* Blocks (Each block available in the app can be disabled separately)&lt;br /&gt;
&lt;br /&gt;
===Custom menu items===&lt;br /&gt;
Additional items can be added to the app main menu (the more menu), such as a link to a different grade book.&lt;br /&gt;
&lt;br /&gt;
In order to do so go to &amp;quot;Site administration &amp;gt; Mobile features &amp;gt; Custom menu items&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Each custom menu item should have the format: item text, link URL, link-opening method and language code (optional, for displaying the item to users of the specified language only), icon (optional, the name of the icon from https://ionicons.com) separated by pipe characters.&lt;br /&gt;
&lt;br /&gt;
Possible link-opening methods are:&lt;br /&gt;
* app - for linking to an activity supported by the app i.e. almost all activity types, as listed in [[Moodle Mobile features]].&lt;br /&gt;
* inappbrowser - for linking to external URLs or site functionalities not supported by the app. The link will open in a browser inside the app overlaying the complete screen.&lt;br /&gt;
* browser - as for inappbrowser except that the link will instead open in the device default browser outside the app.&lt;br /&gt;
* embedded - as for inappbrowser except that the link will instead open in an iframe in a new page in the app. (For this option you may need to enable the admin setting &amp;quot;Allow frame embedding&amp;quot; (allowframembedding)&lt;br /&gt;
Tip: If you add a custom menu item and save changes, then it doesn&#039;t appear in the app main menu, double check that the item is correctly formatted.&lt;br /&gt;
&lt;br /&gt;
Please, note that if custom menu items have the same URL, same link-opening method, and same language only the first custom menu item will be shown.&lt;br /&gt;
&lt;br /&gt;
Please, note that if the app is using a language not indicated in the previous list, the first language in the list will be used. (So if you have a custom menu item in English (en) and French (fr), and the app is using Spanish the user will still see that custom menu item in English)&lt;br /&gt;
&lt;br /&gt;
If you want options tied to a language, you can append _only to the language code, for example:&lt;br /&gt;
en_only&lt;br /&gt;
es_only, will display the custom menu item only when the app language is English or Spanish.&lt;br /&gt;
&lt;br /&gt;
Example of a menu item (it will display a home icon followed by Academy information linking to the URL indicated):&lt;br /&gt;
 Academy information|https://yoursite.com/mod/page/view.php?id=X |app|en|home&lt;br /&gt;
&lt;br /&gt;
===Responsive menu items===&lt;br /&gt;
From 3.7 onwards menu items on bottom tabs are moved to the side of the screen on big screens. Also the number of items displayed on the menu may vary:&lt;br /&gt;
* On small screens (usually phones) from 2 to 5 items will be displayed depending on the size of the screen.&lt;br /&gt;
* On big screens (usually tablets an desktop version) more than 2 items will be displayed without limit.&lt;br /&gt;
If &#039;&#039;&#039;Responsive menu items&#039;&#039;&#039; is selected in Disabled features items will be displayed in side of bottom anyway but 5 items will be displayed in all cases without depending on the size of the screen.&lt;br /&gt;
===Custom language strings ===&lt;br /&gt;
Words and phrases displayed in the app can be customised via the &amp;quot;Site administration &amp;gt; Mobile app features &amp;gt; Custom language strings&amp;quot; (customlangstrings) setting.&lt;br /&gt;
&lt;br /&gt;
Enter each custom language string on a new line with format: string identifier, custom language string and language code, separated by pipe characters. For example:&lt;br /&gt;
 core.user.student|Learner|en&lt;br /&gt;
 core.user.student|Aprendiz|es&lt;br /&gt;
The complete list of string identifiers is listed in https://latest.apps.moodledemo.net/assets/lang/en.json&lt;br /&gt;
&lt;br /&gt;
The string identifier is before the colon. &lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;core.user.student&amp;quot;: &amp;quot;Student&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
means that the string &amp;quot;Student&amp;quot; has string identifier &amp;quot;core.user.student&amp;quot;.&lt;br /&gt;
==Analytics and stats==&lt;br /&gt;
&lt;br /&gt;
===Usage statistics from your Moodle site===&lt;br /&gt;
&lt;br /&gt;
To retrieve information about the Moodle app usage, site administrators and teachers can check the site, course or activity logs.&lt;br /&gt;
&lt;br /&gt;
* Site logs are available via &amp;quot;Site administration &amp;gt; Reports &amp;gt; Logs&amp;quot;&lt;br /&gt;
* Course logs are available via the course options (on top of the course page) &amp;quot;Reports &amp;gt; Logs&amp;quot;&lt;br /&gt;
* Activity logs are available via the activity page, on top you will find &amp;quot;Reports &amp;gt; Logs&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Among the log filters, there is a field called &amp;quot;All sources&amp;quot; with an option &amp;quot;Web Service/ws&amp;quot; that can be used to filter the entry logs generated by the mobile application.&lt;br /&gt;
&lt;br /&gt;
You can compare the number of log entries generated by the &amp;quot;Web&amp;quot; versus &amp;quot;Web Service&amp;quot; (mobile app) to have an overall idea about how your users use the platform.&lt;br /&gt;
&lt;br /&gt;
Please, notice that if you have custom &amp;quot;Web Services&amp;quot; or an installed plugin that uses Web Services, you will also see entries for them under the same filter.&lt;br /&gt;
&lt;br /&gt;
If you have access to the site database, the table &amp;quot;external_tokens&amp;quot; has a &amp;quot;lastaccess&amp;quot; timestamp field that could be used to obtain active users of the app every day.&lt;br /&gt;
&lt;br /&gt;
===Integration with Matomo analytics===&lt;br /&gt;
Note: This feature is available for [https://apps.moodle.com Premium app plans and Branded Moodle Apps]. To use this integration, you will need to have your own instance of Matomo. &lt;br /&gt;
&lt;br /&gt;
Matomo is an open source web analytics tool that helps you monitor traffic to your Moodle site, including app activity. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Connecting to your Matomo instance in the Apps portal&#039;&#039;&#039;&lt;br /&gt;
[[File:Captura de pantalla 2023-11-14 a las 12.03.36.png|thumb|Moodle App Matomo Integration set up]]&lt;br /&gt;
To use Matomo to track app activity on your Moodle site, you will need to have your own instance of Matomo analytics, and to add your Moodle site as one of your measurable websites (see instructions on [https://matomo.org/faq/how-to/create-and-manage-websites/ Matomo’s website]). Then, follow these steps:&lt;br /&gt;
# Log in to the [https://apps.moodle.com Apps portal]. &lt;br /&gt;
# Go to &#039;&#039;&#039;App customisation&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;Analytics&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;Matomo analytics&#039;&#039;&#039;.&lt;br /&gt;
# Check &#039;&#039;&#039;Track app activity&#039;&#039;&#039;.&lt;br /&gt;
# Add your &#039;&#039;&#039;Matomo URL&#039;&#039;&#039; - that&#039;s the URL of your Matomo instance, for example https://yoursite.matomo.cloud.&lt;br /&gt;
# Add the &#039;&#039;&#039;Website ID&#039;&#039;&#039; associated with your Moodle site in Matomo. To obtain this ID:&lt;br /&gt;
## Log in to your Matomo account.&lt;br /&gt;
## Go to &#039;&#039;&#039;Administration&#039;&#039;&#039; using the gear icon on the right side of the top navigation bar.&lt;br /&gt;
## On the left-hand panel, select &#039;&#039;&#039;Websites&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;Manage&#039;&#039;&#039;.&lt;br /&gt;
## In your list of measurables, find the Moodle site in which you want to track app activity. The &#039;&#039;&#039;ID&#039;&#039;&#039; of the measurable is the &#039;&#039;&#039;Website ID&#039;&#039;&#039; you need to enter in the apps portal.&lt;br /&gt;
# Click &#039;&#039;&#039;Save changes&#039;&#039;&#039; to establish the connection and start tracking app activity.&lt;br /&gt;
# If you&#039;d like to stop tracking at any time, uncheck &#039;&#039;&#039;Track app activity&#039;&#039;&#039; and then save changes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To filter Matomo data to isolate mobile app usage from Moodle site interactions, follow these steps:&lt;br /&gt;
[[File:Captura de pantalla 2023-11-14 a las 12.05.05.png|thumb|Moodle App Matomo referrer set-up]]&lt;br /&gt;
# Log in to your Matomo account.&lt;br /&gt;
# Click &#039;&#039;&#039;All visits&#039;&#039;&#039; at the top of the page&lt;br /&gt;
# Create a custom segment by applying this configuration: “Referrer URL” “is” “https://moodlemobile”&lt;br /&gt;
# To only see Moodle site interactions, do the following: “Referrer URL” “is not” “https://moodlemobile”&lt;br /&gt;
&lt;br /&gt;
Please notice that the integration with Matomo does not work offline.&lt;br /&gt;
&lt;br /&gt;
===Google Analytics for Firebase===&lt;br /&gt;
Only available when purchasing a [https://moodle.com/branded-app/ Branded Moodle App]. &lt;br /&gt;
&lt;br /&gt;
Google Analytics for Firebase is a free tool that provides valuable insights and data about how users interact with mobile apps.&lt;br /&gt;
&lt;br /&gt;
Please notice that the integration with Google Analytics for Firebase does not work offline.&lt;br /&gt;
&lt;br /&gt;
===Google Play and Apple App Store statistics===&lt;br /&gt;
&lt;br /&gt;
If you have a custom mobile application, you can access statistics about app downloads and user engagement such as weekly active users and devices.&lt;br /&gt;
&lt;br /&gt;
Google play:&lt;br /&gt;
# Go to Google Play console: https://play.google.com/console&lt;br /&gt;
# Select your app from the list.&lt;br /&gt;
# Navigate to specific tabs, such as &amp;quot;Statistics&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apple App Store:&lt;br /&gt;
# Log in to App Store Connect: https://appstoreconnect.apple.com/&lt;br /&gt;
# Go to &amp;quot;App Analytics&amp;quot; from the dashboard.&lt;br /&gt;
&lt;br /&gt;
==Web services token duration==&lt;br /&gt;
From Moodle 3.4 onwards, an admin can set how long a web services token created by a user (for example via the mobile app) is valid. (In previous versions of Moodle a token was valid for 3 months.)&lt;br /&gt;
&lt;br /&gt;
The setting that dictates the previous &#039;User created token duration&#039; (tokenduration) can be found under the Security section.&lt;br /&gt;
==App&#039;s cache==&lt;br /&gt;
The app caches WebService requests to decrease data usage and increase the app&#039;s speed. When the app needs to get some data from Moodle, it will use a cached request as long as it isn&#039;t expired.&lt;br /&gt;
&lt;br /&gt;
This cache was improved in Moodle App 3.7.0, now there are several cache times depending on the WS being called. This means that some requests will expire more often than others. Also, if the user isn&#039;t using a WiFi connection, the expiration time will also be longer to decrease the data usage. These cache times cannot be configured using a Moodle setting.&lt;br /&gt;
==See also==&lt;br /&gt;
* [https://moodle.academy/course/view.php?id=100 Moodle App Configuration]- a free self-paced course for admins on Moodle Academy.&lt;br /&gt;
* [[Moodle Mobile FAQ]] for other administration-related mobile app questions.&lt;br /&gt;
* [[Moodle app security]]&lt;br /&gt;
* [https://docs.moodle.org/dev/Moodle%20Mobile%20debugging%20WS%20requests dev:Moodle Mobile debugging WS requests] - a guide to helping you find and report problems with the Moodle Mobile app on your site&lt;br /&gt;
* [https://docs.moodle.org/dev/%20Moodle%20Mobile%20Roadmap dev: Moodle Mobile Roadmap]&lt;br /&gt;
* [https://docs.moodle.org/dev/Moodle%20Mobile%20release%20notes dev:Moodle Mobile release notes]&lt;br /&gt;
* [https://docs.moodle.org/dev/Moodle%20Mobile Moodle Mobile developer docs]&lt;br /&gt;
* [[Moodle Mobile availability plugin]]&lt;br /&gt;
* [[Mobile web services]]&lt;br /&gt;
[https://docs.moodle.org/fr/ Guide mobile pour administrateurs]&lt;br /&gt;
[https://docs.moodle.org/es/Moodle app guía para administradores]&lt;br /&gt;
[https://docs.moodle.org/de/Moodle App - Anleitung für Administrator/innen]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_H5P_support&amp;diff=153594</id>
		<title>Moodle app H5P support</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_H5P_support&amp;diff=153594"/>
		<updated>2025-07-04T10:57:50Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Working offline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
==Support by version==&lt;br /&gt;
=== Before Moodle 3.8 ===&lt;br /&gt;
* H5P was supported via an activity plugin developed by the H5P Team (requires Moodle 3.5 onwards)&lt;br /&gt;
* It worked in the app, the H5P content was launched in a special frame embedded in the app. Did not support offline browsing&lt;br /&gt;
* Required certain site configuration changes (like enabling frame embedding) &lt;br /&gt;
=== Moodle 3.8 ===&lt;br /&gt;
* Initial core support added&lt;br /&gt;
* H5P content only available via embedding (text editor and filter)&lt;br /&gt;
* H5P content supported in the Moodle App 3.8&lt;br /&gt;
=== Moodle 3.9 ===&lt;br /&gt;
* New H5P activity plugin available in the core distribution&lt;br /&gt;
* New Content Bank for managing H5P content in the Moodle site&lt;br /&gt;
* H5P activities can be graded&lt;br /&gt;
* H5P activities supported in the Moodle App 3.9&lt;br /&gt;
== How H5P content is displayed? ==&lt;br /&gt;
=== Embedded ===&lt;br /&gt;
* The content “auto-plays” in the web version and in the app if the display option &#039;Auto-play in mobile app&#039; (new in Moodle LMS and app 5.0) is checked. Otherwise, it has to be manually played in the app by the student.&lt;br /&gt;
** As a workaround for older Moodle LMS versions, you can add this HTML attribute in the main element used to embed the H5P file: data-mobileapp-autoplay=&amp;quot;true&amp;quot;&lt;br /&gt;
* The app will automatically download the content for offline use (so it is available without connection)&lt;br /&gt;
** WiFi: Only if the package size is less than 20MB&lt;br /&gt;
** 3G/4G: Only if the package size is less than 2MB &lt;br /&gt;
* For larger packages, the student can always choose to download it manually (click top-right)&lt;br /&gt;
* If the student is downloading the full course, all the embedded H5P packages will be downloaded&lt;br /&gt;
* External H5P are not downloadable for offline use&lt;br /&gt;
[[File:h5p_embedded.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=== As part of the core H5P activity (Moodle 3.9 onwards) ===&lt;br /&gt;
* The content is automatically downloaded and “auto-plays” in the app if:&lt;br /&gt;
** WiFi: Only if the package size is less than 20MB&lt;br /&gt;
** 3G/4G: Only if the package size is less than 2MB &lt;br /&gt;
* For larger packages, we display a Play button so the student can launch it.&lt;br /&gt;
* The H5P is always downloaded (be careful with big H5P packages), it is required for activating tracking&lt;br /&gt;
* In the [[Moodle_app_guide_for_admins#Disabled_features|Moodle Site Administration settings]], downloading H5P packages can be disabled.&lt;br /&gt;
* Students can review their previous attempts in the app&lt;br /&gt;
[[File:h5p_activity.png|600px]]&lt;br /&gt;
&lt;br /&gt;
== Working offline ==&lt;br /&gt;
* Offline support is only available in the core H5P activity module&lt;br /&gt;
* For the offline mode to work, the app needs to download the H5P zip package to the user&#039;s device. You can prevent H5P packages from being downloaded via Moodle settings ([[Moodle_app_guide_for_admins#Disabled_features|Moodle app features section]]), selecting the &amp;quot;View H5P offline&amp;quot; option. Please note that preventing the download of H5P packages will disable the offline support.&lt;br /&gt;
* Students can download a full course with H5P activities or a single H5P activity&lt;br /&gt;
* In both cases, if he is playing the package when it is not connected to the Internet, all the tracking information will be stored locally in the device&lt;br /&gt;
* Once the user is connected back to the Internet, all the tracking information will be sent to the server for the teacher to review&lt;br /&gt;
* If the H5P package has missing dependencies or errors, it might only work online and not offline&lt;br /&gt;
&lt;br /&gt;
[[Category:H5P]]&lt;br /&gt;
&lt;br /&gt;
[[es:Soporte H5P Moodle app]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_offline_features&amp;diff=153593</id>
		<title>Moodle app offline features</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_offline_features&amp;diff=153593"/>
		<updated>2025-07-04T10:54:16Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Other activities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
We live in a hyper-connected 5G world and we think the Internet is everywhere, but we usually forget about: &lt;br /&gt;
&lt;br /&gt;
* Underdeveloped and developing countries&lt;br /&gt;
* Rural areas in big countries&lt;br /&gt;
* Kids with restricted data plans&lt;br /&gt;
* Shared internet connection in schools/classrooms&lt;br /&gt;
* Aerial and maritime traffic&lt;br /&gt;
&lt;br /&gt;
One of the most powerful features of the Moodle app is that it enables us to work offline.&lt;br /&gt;
&lt;br /&gt;
Students can browse course contents offline and participate in activities, then once they are connected back to the Internet, the app will synchronise all the necessary information with their Moodle site.&lt;br /&gt;
&lt;br /&gt;
== How does the app store data for offline use? ==&lt;br /&gt;
&lt;br /&gt;
* While browsing the site and its contents, though note that external contents (e.g. YouTube videos) are not downloaded and embedded files (audio, video) are not always downloaded (it depends on the user connection and file size)&lt;br /&gt;
* When the user downloads content by the download icon&lt;br /&gt;
** The user can use the “cloud” icon to download specific content or a complete section or course&lt;br /&gt;
** The user gets alerted when downloading large files&lt;br /&gt;
** If a resource has been updated in the server, a refresh icon will be shown.&lt;br /&gt;
&lt;br /&gt;
===Why doesn’t the app pre-fetch/cache more data?===&lt;br /&gt;
# Because the user may have a monthly data plan&lt;br /&gt;
# Because the device storage space may be limited&lt;br /&gt;
# Massive data download might impact on the server performance&lt;br /&gt;
&lt;br /&gt;
===What does the app consider to be a large file?===&lt;br /&gt;
* If the user is connected to a Wi-Fi network: large file &amp;gt;= 20MB&lt;br /&gt;
*If the user is connected to a data network:  large file &amp;gt;= 2MB&lt;br /&gt;
&lt;br /&gt;
== Course features offline support ==&lt;br /&gt;
&lt;br /&gt;
* All course resources can be downloaded for offline (except URL)&lt;br /&gt;
* All course activities are supported (except Chat and External tool)&lt;br /&gt;
* Additional (non-standard) plugins usually don’t work offline&lt;br /&gt;
* Some functionality for certain activity modules does not work offline, see below for more information.&lt;br /&gt;
&lt;br /&gt;
=== Assessment ===&lt;br /&gt;
&lt;br /&gt;
The offline mode is disabled by default in Quiz and Lesson, however, the teacher can decide if they want to enable it.&lt;br /&gt;
* A quiz may be attempted offline only if:&lt;br /&gt;
** There is no time limit set&lt;br /&gt;
** The question behavior is deferred feedback (with or without CBM) only&lt;br /&gt;
** New in &#039;&#039;&#039;Moodle 4.3.1&#039;&#039;&#039;  - the Quiz uses sequential navigation.&lt;br /&gt;
** There is no network address requirement&lt;br /&gt;
&lt;br /&gt;
For detailed information about Quiz and how it works offline please see [[Moodle Mobile quiz offline attempts]].&lt;br /&gt;
&lt;br /&gt;
=== Other activities ===&lt;br /&gt;
* SCORM and H5P packages are downloaded to the user’s device by default, there are settings to control this behaviour in order to prevent the packages from being downloaded (check this support pages for more information, [[Moodle app SCORM player]] and [[Moodle app H5P support]]).&lt;br /&gt;
* Wiki editing is not supported offline&lt;br /&gt;
* Glossaries entries can’t be deleted/updated offline&lt;br /&gt;
* Text assignment submissions can’t be edited offline&lt;br /&gt;
* Activities configured with availability conditions cannot be/are not downloaded for offline (the user will have to reconnect to be able to see activities unlocked by conditions recently met)&lt;br /&gt;
&lt;br /&gt;
== What other features work offline?==&lt;br /&gt;
&lt;br /&gt;
Apart from resources and activities certain course and site functionality are also available offline.&lt;br /&gt;
&lt;br /&gt;
The offline support for completion is only for marking courses or activities completed (when viewed).&lt;br /&gt;
&lt;br /&gt;
Conditioned activities are not downloaded for offline.&lt;br /&gt;
&lt;br /&gt;
* Participants&lt;br /&gt;
* Grades&lt;br /&gt;
* Completion&lt;br /&gt;
* Notes&lt;br /&gt;
* Messaging&lt;br /&gt;
* Notifications&lt;br /&gt;
* Calendar events&lt;br /&gt;
* Private files&lt;br /&gt;
* Badges&lt;br /&gt;
* Blogs&lt;br /&gt;
* Rating&lt;br /&gt;
* Comments&lt;br /&gt;
&lt;br /&gt;
== Synchronisation == &lt;br /&gt;
&lt;br /&gt;
Synchronisation works differently depending on the device&lt;br /&gt;
* Android: The app must be opened but it can be in the background (you can be using a different app).&lt;br /&gt;
* iOS (iPhone, iPad): The app must be opened and in the foreground (it has to be the device active app).&lt;br /&gt;
* Desktop: The app must be opened but it can be in the background (minimised).&lt;br /&gt;
&lt;br /&gt;
🔋The battery is the key factor, mobile OS limits its usage&lt;br /&gt;
&lt;br /&gt;
There are two ways of synchronising data:&lt;br /&gt;
&lt;br /&gt;
* Automatic&lt;br /&gt;
** Runs regularly, every 10 minutes&lt;br /&gt;
* Manual&lt;br /&gt;
** The user will see a message indicating there is data pending synchronisation&lt;br /&gt;
&lt;br /&gt;
===What happens with the student activity after synchronisation?===&lt;br /&gt;
Actions performed offline are logged and stored into the system with the synchronisation time, not with the time when they happened.&lt;br /&gt;
We are exploring ways to improve reporting via Moodle’s xAPI support.&lt;br /&gt;
&lt;br /&gt;
For more information about how synchronisation works see [[Moodle app synchronization]].&lt;br /&gt;
&lt;br /&gt;
== Configuration options ==&lt;br /&gt;
&lt;br /&gt;
Site administrators can decide if they want:&lt;br /&gt;
* Disable completely the offline mode&lt;br /&gt;
* Disable all courses downloading&lt;br /&gt;
* Disable individual courses downloading&lt;br /&gt;
&lt;br /&gt;
For disabling the previous features, please see [[Moodle app guide for admins]].&lt;br /&gt;
&lt;br /&gt;
Users can decide if they want to allow synchronisation only when connected to a Wi-Fi network or also when using a data network.&lt;br /&gt;
&lt;br /&gt;
==Moodle App Plans ==&lt;br /&gt;
&lt;br /&gt;
When using the Moodle App, site admins can choose to subscribe to a paid plan or use the free version. &lt;br /&gt;
&lt;br /&gt;
Plans limit the download of complete courses in one click.&lt;br /&gt;
&lt;br /&gt;
Students can still download individual contents or sections.&lt;br /&gt;
&lt;br /&gt;
We recommend a Premium plan subscription: https://apps.moodle.com&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Moodle app SCORM player]]&lt;br /&gt;
* [[Moodle app H5P support]]&lt;br /&gt;
* [[Moodle Mobile quiz]]&lt;br /&gt;
* [[Moodle app synchronization]]&lt;br /&gt;
&lt;br /&gt;
[[es:Características de Moodle app sin conexión]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_SCORM_player&amp;diff=153592</id>
		<title>Moodle app SCORM player</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_SCORM_player&amp;diff=153592"/>
		<updated>2025-07-04T10:48:46Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
==Features==&lt;br /&gt;
The Moodle app SCORM player enables the playing of SCORM 1.2 packages online and offline.&lt;br /&gt;
&lt;br /&gt;
The Moodle app 5.0 allows remote and SCORM 2004 packages embedded in the site to be played on the app (only online).&lt;br /&gt;
&lt;br /&gt;
When a user loses connectivity, offline mode is enabled automatically and all interactions that are tracked by the SCORM package are saved.&lt;br /&gt;
&lt;br /&gt;
When a user is online again, the offline attempt is synchronised back to the Moodle site, either merging it with other incomplete attempts on the site or saving it as a new attempt.&lt;br /&gt;
&lt;br /&gt;
Notice that in order to be able to play packages offline, the app will have to download the SCORM zip to the user&#039;s device. In order to prevent this behaviour, you can enable the global SCORM setting &amp;quot;Protect package downloads&amp;quot; (protectpackagedownloads). Enabling the previous setting will disable the offline mode for the SCORM activity.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
The Moodle app SCORM player requires Moodle 3.0 onwards. In &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Activity Modules &amp;gt; SCORM Package&#039;&#039; the setting &#039;Protect package downloads&#039; should be disabled (default setting).&lt;br /&gt;
&lt;br /&gt;
The Moodle app SCORM player may be used on sites running Moodle 2.6 to Moodle 2.9 if the [[Moodle app additional features]] plugin is installed.&lt;br /&gt;
&lt;br /&gt;
If the playing of SCORM packages offline is not desired, the setting &#039;Protect package downloads&#039; may be enabled. If the Moodle app additional features plugin is being used, the setting can be found in &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Local plugins &amp;gt; Moodle Mobile additional features&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The ZIP file containing the SCORM contents should not be Windows specific. If your SCORM package contains directories using the inverted path separator &amp;quot;\&amp;quot; they won&#039;t work in Android.&lt;br /&gt;
== Technical details ==&lt;br /&gt;
The Moodle app SCORM player provides support for:&lt;br /&gt;
* SCORM 1.2 packages&lt;br /&gt;
* SCORM 2004 (only online, embedded from the site). Moodle app version 5.0 onward&lt;br /&gt;
* Objectives, interactions and prerequisites&lt;br /&gt;
* SCO navigation via nav.event&lt;br /&gt;
* Uploaded packages, remote zip packages and zip packages in any type of repository supported by Moodle&lt;br /&gt;
The Moodle app SCORM player does not currently support:&lt;br /&gt;
* Remote imsmanifest.xml packages or file system repository unzipped SCORMS&lt;br /&gt;
* Opening of packages outside the app e.g. in a new browser window&lt;br /&gt;
* JavaScript pop-ups via window.open (Mobile device limitation)&lt;br /&gt;
==Tips for Moodle app friendly SCORM packages ==&lt;br /&gt;
* Try to reduce the size of the images and use mobile-compatible formats e.g. png&lt;br /&gt;
* Try to reduce the size of videos and use mobile-compatible formats e.g. mp4&lt;br /&gt;
* Avoid using Flash or FLV&lt;br /&gt;
* Avoid using images, files or media on remote sites&lt;br /&gt;
* Avoid using pop-ups&lt;br /&gt;
* Avoid using advanced HTML5 features, as they may not be supported by old devices&lt;br /&gt;
* Avoid having a left navigation menu as part of the SCORM package, as this reduces the space available for the package content&lt;br /&gt;
* If you want to display your SCORM package in semi full-screen mode (it will just remove the app bottom menu), you have to configure it in Moodle so it will open in &amp;quot;New window&amp;quot; via the SCORM module Appearance settings.&lt;br /&gt;
[[Category:SCORM]]&lt;br /&gt;
[[es:Reproductor SCORM Moodle Mobile]]&lt;br /&gt;
[[de:Moodle App - SCORM Player]]&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Large videos stored within the package do not play in iOS devices when using Video.js:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
This is caused by the following Video.js bug, see https://github.com/videojs/video.js/issues/7557&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_H5P_support&amp;diff=153541</id>
		<title>Moodle app H5P support</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_H5P_support&amp;diff=153541"/>
		<updated>2025-07-01T09:09:14Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Embedded */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
==Support by version==&lt;br /&gt;
=== Before Moodle 3.8 ===&lt;br /&gt;
* H5P was supported via an activity plugin developed by the H5P Team (requires Moodle 3.5 onwards)&lt;br /&gt;
* It worked in the app, the H5P content was launched in a special frame embedded in the app. Did not support offline browsing&lt;br /&gt;
* Required certain site configuration changes (like enabling frame embedding) &lt;br /&gt;
=== Moodle 3.8 ===&lt;br /&gt;
* Initial core support added&lt;br /&gt;
* H5P content only available via embedding (text editor and filter)&lt;br /&gt;
* H5P content supported in the Moodle App 3.8&lt;br /&gt;
=== Moodle 3.9 ===&lt;br /&gt;
* New H5P activity plugin available in the core distribution&lt;br /&gt;
* New Content Bank for managing H5P content in the Moodle site&lt;br /&gt;
* H5P activities can be graded&lt;br /&gt;
* H5P activities supported in the Moodle App 3.9&lt;br /&gt;
== How H5P content is displayed? ==&lt;br /&gt;
=== Embedded ===&lt;br /&gt;
* The content “auto-plays” in the web version and in the app if the display option &#039;Auto-play in mobile app&#039; (new in Moodle LMS and app 5.0) is checked. Otherwise, it has to be manually played in the app by the student.&lt;br /&gt;
** As a workaround for older Moodle LMS versions, you can add this HTML attribute in the main element used to embed the H5P file: data-mobileapp-autoplay=&amp;quot;true&amp;quot;&lt;br /&gt;
* The app will automatically download the content for offline use (so it is available without connection)&lt;br /&gt;
** WiFi: Only if the package size is less than 20MB&lt;br /&gt;
** 3G/4G: Only if the package size is less than 2MB &lt;br /&gt;
* For larger packages, the student can always choose to download it manually (click top-right)&lt;br /&gt;
* If the student is downloading the full course, all the embedded H5P packages will be downloaded&lt;br /&gt;
* External H5P are not downloadable for offline use&lt;br /&gt;
[[File:h5p_embedded.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=== As part of the core H5P activity (Moodle 3.9 onwards) ===&lt;br /&gt;
* The content is automatically downloaded and “auto-plays” in the app if:&lt;br /&gt;
** WiFi: Only if the package size is less than 20MB&lt;br /&gt;
** 3G/4G: Only if the package size is less than 2MB &lt;br /&gt;
* For larger packages, we display a Play button so the student can launch it.&lt;br /&gt;
* The H5P is always downloaded (be careful with big H5P packages), it is required for activating tracking&lt;br /&gt;
* In the [[Moodle_app_guide_for_admins#Disabled_features|Moodle Site Administration settings]], downloading H5P packages can be disabled.&lt;br /&gt;
* Students can review their previous attempts in the app&lt;br /&gt;
[[File:h5p_activity.png|600px]]&lt;br /&gt;
&lt;br /&gt;
== Working offline ==&lt;br /&gt;
* Offline support is only available in the core H5P activity module&lt;br /&gt;
* Students can download a full course with H5P activities or single H5P activities&lt;br /&gt;
* In both cases, if he is playing the package when is not connected to the Internet all the tracking information will be stored locally in the device&lt;br /&gt;
* Once the user is connected back to the Internet, all the tracking information will be send to the server for the teacher to review&lt;br /&gt;
* H5P offline support can be disabled via Moodle settings ([[Moodle_app_guide_for_admins#Disabled_features|Moodle app features section]])&lt;br /&gt;
* If the H5P package has missing dependencies or errors it might only work online and not offline&lt;br /&gt;
&lt;br /&gt;
[[Category:H5P]]&lt;br /&gt;
&lt;br /&gt;
[[es:Soporte H5P Moodle app]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=File:Moodle_features_students.pdf&amp;diff=153521</id>
		<title>File:Moodle features students.pdf</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=File:Moodle_features_students.pdf&amp;diff=153521"/>
		<updated>2025-06-30T14:55:56Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: Jleyva uploaded a new version of File:Moodle features students.pdf&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_SCORM_player&amp;diff=153520</id>
		<title>Moodle app SCORM player</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_SCORM_player&amp;diff=153520"/>
		<updated>2025-06-30T14:47:13Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
==Features==&lt;br /&gt;
The Moodle app SCORM player enables the playing of SCORM 1.2 packages online and offline.&lt;br /&gt;
&lt;br /&gt;
The Moodle app 5.0 allows remote and SCORM 2004 packages embedded in the site to be played on the app (only online).&lt;br /&gt;
&lt;br /&gt;
When a user loses connectivity, offline mode is enabled automatically and all interactions that are tracked by the SCORM package are saved.&lt;br /&gt;
&lt;br /&gt;
When a user is online again, the offline attempt is synchronised back to the Moodle site, either merging it with other incomplete attempts on the site or saving it as a new attempt.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
The Moodle app SCORM player requires Moodle 3.0 onwards. In &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Activity Modules &amp;gt; SCORM Package&#039;&#039; the setting &#039;Protect package downloads&#039; should be disabled (default setting).&lt;br /&gt;
&lt;br /&gt;
The Moodle app SCORM player may be used on sites running Moodle 2.6 to Moodle 2.9 if the [[Moodle app additional features]] plugin is installed.&lt;br /&gt;
&lt;br /&gt;
If the playing of SCORM packages offline is not desired, the setting &#039;Protect package downloads&#039; may be enabled. If the Moodle app additional features plugin is being used, the setting can be found in &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Local plugins &amp;gt; Moodle Mobile additional features&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The ZIP file containing the SCORM contents should not be Windows specific. If your SCORM package contains directories using the inverted path separator &amp;quot;\&amp;quot; they won&#039;t work in Android.&lt;br /&gt;
== Technical details ==&lt;br /&gt;
The Moodle app SCORM player provides support for:&lt;br /&gt;
* SCORM 1.2 packages&lt;br /&gt;
* SCORM 2004 (only online, embedded from the site). Moodle app version 5.0 onward&lt;br /&gt;
* Objectives, interactions and prerequisites&lt;br /&gt;
* SCO navigation via nav.event&lt;br /&gt;
* Uploaded packages, remote zip packages and zip packages in any type of repository supported by Moodle&lt;br /&gt;
The Moodle app SCORM player does not currently support:&lt;br /&gt;
* Remote imsmanifest.xml packages or file system repository unzipped SCORMS&lt;br /&gt;
* Opening of packages outside the app e.g. in a new browser window&lt;br /&gt;
* JavaScript pop-ups via window.open (Mobile device limitation)&lt;br /&gt;
==Tips for Moodle app friendly SCORM packages ==&lt;br /&gt;
* Try to reduce the size of the images and use mobile-compatible formats e.g. png&lt;br /&gt;
* Try to reduce the size of videos and use mobile-compatible formats e.g. mp4&lt;br /&gt;
* Avoid using Flash or FLV&lt;br /&gt;
* Avoid using images, files or media on remote sites&lt;br /&gt;
* Avoid using pop-ups&lt;br /&gt;
* Avoid using advanced HTML5 features, as they may not be supported by old devices&lt;br /&gt;
* Avoid having a left navigation menu as part of the SCORM package, as this reduces the space available for the package content&lt;br /&gt;
* If you want to display your SCORM package in semi full-screen mode (it will just remove the app bottom menu), you have to configure it in Moodle so it will open in &amp;quot;New window&amp;quot; via the SCORM module Appearance settings.&lt;br /&gt;
[[Category:SCORM]]&lt;br /&gt;
[[es:Reproductor SCORM Moodle Mobile]]&lt;br /&gt;
[[de:Moodle App - SCORM Player]]&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Large videos stored within the package do not play in iOS devices when using Video.js:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
This is caused by the following Video.js bug, see https://github.com/videojs/video.js/issues/7557&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_H5P_support&amp;diff=153519</id>
		<title>Moodle app H5P support</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_H5P_support&amp;diff=153519"/>
		<updated>2025-06-30T14:43:39Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Working offline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
==Support by version==&lt;br /&gt;
=== Before Moodle 3.8 ===&lt;br /&gt;
* H5P was supported via an activity plugin developed by the H5P Team (requires Moodle 3.5 onwards)&lt;br /&gt;
* It worked in the app, the H5P content was launched in a special frame embedded in the app. Did not support offline browsing&lt;br /&gt;
* Required certain site configuration changes (like enabling frame embedding) &lt;br /&gt;
=== Moodle 3.8 ===&lt;br /&gt;
* Initial core support added&lt;br /&gt;
* H5P content only available via embedding (text editor and filter)&lt;br /&gt;
* H5P content supported in the Moodle App 3.8&lt;br /&gt;
=== Moodle 3.9 ===&lt;br /&gt;
* New H5P activity plugin available in the core distribution&lt;br /&gt;
* New Content Bank for managing H5P content in the Moodle site&lt;br /&gt;
* H5P activities can be graded&lt;br /&gt;
* H5P activities supported in the Moodle App 3.9&lt;br /&gt;
== How H5P content is displayed? ==&lt;br /&gt;
=== Embedded ===&lt;br /&gt;
* The content “auto-plays” in the web version and in the app if the display option &#039;Auto-play in mobile app&#039; (new in 5.0) is checked. Otherwise it has to be manually played in the app by the student,&lt;br /&gt;
* The app will automatically download the content for offline (so it is available without connection)&lt;br /&gt;
** WiFi: Only if the package size is less than 20MB&lt;br /&gt;
** 3G/4G: Only if the package size is less than 2MB &lt;br /&gt;
* For larger packages, the student can always choose to download it manually (click top-right)&lt;br /&gt;
* If the student is downloading the full course, all the embedded H5P packaged will be downloaded&lt;br /&gt;
* External H5P are not downloadable for offline&lt;br /&gt;
[[File:h5p_embedded.png|600px]]&lt;br /&gt;
=== As part of the core H5P activity (Moodle 3.9 onwards) ===&lt;br /&gt;
* The content is automatically downloaded and “auto-plays” in the app if:&lt;br /&gt;
** WiFi: Only if the package size is less than 20MB&lt;br /&gt;
** 3G/4G: Only if the package size is less than 2MB &lt;br /&gt;
* For larger packages, we display a Play button so the student can launch it.&lt;br /&gt;
* The H5P is always downloaded (be careful with big H5P packages), it is required for activating tracking&lt;br /&gt;
* In the [[Moodle_app_guide_for_admins#Disabled_features|Moodle Site Administration settings]], downloading H5P packages can be disabled.&lt;br /&gt;
* Students can review their previous attempts in the app&lt;br /&gt;
[[File:h5p_activity.png|600px]]&lt;br /&gt;
&lt;br /&gt;
== Working offline ==&lt;br /&gt;
* Offline support is only available in the core H5P activity module&lt;br /&gt;
* Students can download a full course with H5P activities or single H5P activities&lt;br /&gt;
* In both cases, if he is playing the package when is not connected to the Internet all the tracking information will be stored locally in the device&lt;br /&gt;
* Once the user is connected back to the Internet, all the tracking information will be send to the server for the teacher to review&lt;br /&gt;
* H5P offline support can be disabled via Moodle settings ([[Moodle_app_guide_for_admins#Disabled_features|Moodle app features section]])&lt;br /&gt;
* If the H5P package has missing dependencies or errors it might only work online and not offline&lt;br /&gt;
&lt;br /&gt;
[[Category:H5P]]&lt;br /&gt;
&lt;br /&gt;
[[es:Soporte H5P Moodle app]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Creating_mobile-friendly_courses&amp;diff=153300</id>
		<title>Creating mobile-friendly courses</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Creating_mobile-friendly_courses&amp;diff=153300"/>
		<updated>2025-06-20T06:18:59Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Course content */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
As more and more students access courses from their smartphones, tablets or other mobile devices, it is increasingly important to ensure your courses are mobile-friendly.&lt;br /&gt;
&lt;br /&gt;
Encouraging students to install the [https://download.moodle.org/mobile/ official Moodle mobile app] is one way to improve their learning experience. Below are some suggestions for optimising your course materials for students both using the app and accessing Moodle from mobile devices.&lt;br /&gt;
==Setting up your course==&lt;br /&gt;
*Custom sections or weekly course format is best suited to mobile devices. In topics format, the first section or the highlighted section is shown by default in the app. In weekly format, the current week is shown.&lt;br /&gt;
*Don&#039;t use stealth activities or direct links to activities (the links will work but is not the best experience for mobile).&lt;br /&gt;
*Blocks are collapsed by default and can be expanded by clicking the arrow-like tab on the right.&lt;br /&gt;
*If you have a mix of students accessing the course on mobile and desktop, consider asking your admin to install the [[Moodle Mobile availability plugin]] which restricts items to desktop or mobile users.&lt;br /&gt;
&lt;br /&gt;
==Course content==&lt;br /&gt;
*Use responsive HTML in pages.&lt;br /&gt;
*Use a [[Page]] or [[Book]] instead of downloadable documents where possible.&lt;br /&gt;
*Use a [[Page]] or [[Book]] for videos instead of adding them in [[Text and media area|Text and media area resources]], avoid embedding more than one video in the same page.&lt;br /&gt;
*Avoid uploading many documents or having numerous, text heavy pages. Think more in terms of short &amp;quot;information-bytes&amp;quot;.&lt;br /&gt;
*If you include YouTube videos, keep them short and consider providing them for download and offline viewing in a [[Folder resource|folder]]. Not all video formats are supported so add them in different formats. (MP4 is probably the most widely accepted format.)&lt;br /&gt;
* For YouTube or Vimeo videos, you may use Bootstrap responsive classes: https://getbootstrap.com/docs/4.0/utilities/embed/, for example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;div class=&amp;quot;embed-responsive&amp;quot;&amp;gt;&amp;lt;video...&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Note that drag and drop questions behave differently in the app. You can&#039;t drag images, you need to tap to select and tap to drop.&lt;br /&gt;
*Note that if you add YouTube video links or map links as URL resources, they will open automatically in the app.&lt;br /&gt;
{|&lt;br /&gt;
| [[File:moodlemobile_short_text_intro.png|thumb|Short text for label]]&lt;br /&gt;
| [[File:moodlemobile_responsive_html.png|thumb|Responsive HTML]]&lt;br /&gt;
| [[File:moodlemobile_youtube_maps_links.png|thumb|Map link]]&lt;br /&gt;
|}&lt;br /&gt;
* Use only plugins with mobile app support so they can be accessed via the mobile app - see [https://moodle.org/plugins/browse.php?list=award&amp;amp;id=6 Moodle plugins directory: Award: mobile app support].&lt;br /&gt;
* If you want to include large audio files in your course, consider including them embedded in a label or page rather than as a file resource. The reason is that embedded files will play even if the screen is locked but files won&#039;t play with the screen locked.&lt;br /&gt;
* Avoid relative URLs such as ../mod/page/views.php?id=X as the app won&#039;t be able to guess the proper URL, if it is necessary to use URLs without domain, please use absolute URLs such as /mod/page/views.php?id=X&lt;br /&gt;
&lt;br /&gt;
===Using Bootstrap components===&lt;br /&gt;
&lt;br /&gt;
The mobile app only supports a subset of Bootstrap components:&lt;br /&gt;
* Buttons&lt;br /&gt;
* Badges&lt;br /&gt;
* Cards&lt;br /&gt;
* Alerts&lt;br /&gt;
* Cards&lt;br /&gt;
* Typography&lt;br /&gt;
* Popover&lt;br /&gt;
* Tooltips&lt;br /&gt;
&lt;br /&gt;
Please note that not all the components support all their possible properties.&lt;br /&gt;
&lt;br /&gt;
===Media download for offline usage===&lt;br /&gt;
To enable media files, such as video, to be automatically downloaded when viewed.&lt;br /&gt;
* The file must be uploaded to the course, rather than being linked to (from YouTube, Vimeo etc.)&lt;br /&gt;
* The file must be small - less than 2MB for 3G users or less than 20MB for WiFi users&lt;br /&gt;
When a page containing the video is viewed (without playing the video), the file will then be downloaded.&lt;br /&gt;
&lt;br /&gt;
When using Moodle Mobile 3.1 or later with a WiFi connection, when the video is played, the file will be downloaded in the background. The next time the video is played, the downloaded file will be used.&lt;br /&gt;
&lt;br /&gt;
Please note that if the user did a full download of the courses, the files will be downloaded regardless its size.&lt;br /&gt;
&lt;br /&gt;
===Activities===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quizzes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Quizzes with lots of questions do not perform very well on the website or the app as the backend server will have to do heavy preparatory work, especially if random questions are used. &lt;br /&gt;
&lt;br /&gt;
In general, our recommendation is to avoid having just a quiz with lots of questions, it is better to split it into different quizzes.&lt;br /&gt;
&lt;br /&gt;
Another recommendation is to limit the number of questions per page to avoid having more than 5 questions displayed on a single page on a very narrow screen.&lt;br /&gt;
&lt;br /&gt;
===Offline activities===&lt;br /&gt;
All the supported activities work offline, although some require specific settings like the lesson and quiz module, you can find bellow additional information:&lt;br /&gt;
* [[Moodle Mobile quiz offline attempts]] &lt;br /&gt;
* [[Moodle app H5P support#Working offline|Moodle H5P]]&lt;br /&gt;
* [[Moodle app SCORM player]]&lt;br /&gt;
&lt;br /&gt;
=== Things to avoid===&lt;br /&gt;
Some activities are not yet fully supported by the mobile app, so find alternatives. See [[Moodle Mobile SCORM player]] for things to avoid in SCORM packages.&lt;br /&gt;
&lt;br /&gt;
You can find the list of activities supported by the app in the [[Moodle Mobile features]] page.&lt;br /&gt;
&lt;br /&gt;
==Use the latest stable version of Moodle==&lt;br /&gt;
As indicated in [[Moodle Mobile features]] some features are only available in recent Moodle versions.&lt;br /&gt;
&lt;br /&gt;
It is recommended to use the [https://moodledev.io/general/releases latest stable version].&lt;br /&gt;
&lt;br /&gt;
==Notifications and messages==&lt;br /&gt;
Encourage your students to enable mobile notifications so they are alerted about calendar events, forum posts, messages, assignment submissions and so on. Find out more in [[Mobile app notifications]].&lt;br /&gt;
&lt;br /&gt;
You can also enable mobile notifications for all the users by default via the [[Messaging settings]] default message outputs. Students can disable Mobile notifications within the app.&lt;br /&gt;
==Mobile device considerations==&lt;br /&gt;
The app works better on devices running modern devices.&lt;br /&gt;
&lt;br /&gt;
In old devices you may find problems related to:&lt;br /&gt;
* User interface&lt;br /&gt;
* Connection problems (specifically when connecting to sites using https certificates)&lt;br /&gt;
* Slowness&lt;br /&gt;
&lt;br /&gt;
==Links to open the Moodle app==&lt;br /&gt;
If required, links which open the Moodle app may be provided in the course (for users browsing the site using a mobile device with the app installed).&lt;br /&gt;
&lt;br /&gt;
Links are of the form &amp;lt;code&amp;gt;moodlemobile://https://username@domain.com?token=TOKEN&amp;amp;privatetoken=PRIVATETOKEN&amp;amp;redirect=http://domain.com/course/view.php?id=2&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Please notice that this kind of links are only supported in Moodle app 3.7.0 onwards. If your app has an older version you&#039;ll have to use the old format: &amp;lt;code&amp;gt;moodlemobile://link=https://yourmoodlesite.org/mod/...&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For more information about this, please read [https://docs.moodle.org/dev/Open_the_Moodle_app_from_another_app Open the Moodle app from another app].&lt;br /&gt;
==Learn more==&lt;br /&gt;
* Free course on Moodle Academy [https://moodle.academy/enrol/index.php?id=100 Moodle App configuration]&lt;br /&gt;
* Forum post: [https://moodle.org/mod/forum/discuss.php?d=349160 Try the Moodle Mobile app with a mobile-friendly course].&lt;br /&gt;
* [https://docs.moodle.org/dev/Creating_mobile_question_types How to make third party question types work in Mobile] documentation for developers&lt;br /&gt;
[[de:Moodle Mobile - Websites optimieren]]&lt;br /&gt;
[[es:Crear sitios amistosos para Moodle Mobile]]&lt;br /&gt;
[[fr:Créer des cours pour appareils mobiles]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_FAQ&amp;diff=153091</id>
		<title>Moodle app FAQ</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_FAQ&amp;diff=153091"/>
		<updated>2025-05-16T08:16:45Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* The Moodle app might seem slow (especially on Android devices) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
==Students==&lt;br /&gt;
===How can I log in?===&lt;br /&gt;
To log in to your Moodle site with the Moodle App, you need the URL (web address) of the Moodle site that you’re trying to access. If your organisation has Search enabled, you can try searching by the name of your organisation or eLearning site.&lt;br /&gt;
&lt;br /&gt;
If your organisation allows you to log in via QR code, you’ll find the QR code at the bottom of your user profile on your Moodle site. You just need to press “Scan QR code” on the app, scan the QR code on your profile and you’ll be logged in automatically.&lt;br /&gt;
&lt;br /&gt;
If your organisation allows you to log in using face recognition or fingerprint, you can activate this in the App, going to User account &amp;gt; Preferences. You’ll need to have biometric authentication enabled in your own device’s settings. &lt;br /&gt;
===Who can I contact for help with the app?===&lt;br /&gt;
If you’re a student and need help with issues related to logging in, registering to a Moodle site or trouble connecting to the app, you should contact your school or learning organisation. For example, one of your teachers, or the person who takes care of Moodle.&lt;br /&gt;
Moodle HQ make the Moodle software and the Moodle app, but they don’t manage nor have access to your Moodle site or your user data.&lt;br /&gt;
===How can I get the Moodle app?===&lt;br /&gt;
You can download the Moodle App for free from [https://play.google.com/store/apps/details?id=com.moodle.moodlemobile Google Play] and the Apple [https://itunes.apple.com/app/moodle-mobile/id633359593?mt=8 App Store]. You will find it by searching “Moodle”, and the author/owner is “Moodle Pty Ltd”.&lt;br /&gt;
If you are unable to download the app from Google play, please visit [https://download.moodle.org/mobile/ Moodle app downloads]&lt;br /&gt;
===I can&#039;t get the app to work. ===&lt;br /&gt;
To ensure that the Moodle app functions properly, please double-check that you have correctly entered the URL address of the Moodle site you are using (please visit [https://docs.moodle.org/en/Moodle_app_FAQ#I_can%E2%80%99t_find_my_Moodle_site_in_the_app. I can’t find my Moodle site in the app]). If you are experiencing difficulties connecting to your site, please contact the person or team who takes care of Moodle in your school or learning organisation. Please note the app only works with Moodle sites that have been set up to allow it, and that are running on at least Moodle 3.5.&lt;br /&gt;
&lt;br /&gt;
===I can’t find my Moodle site in the app. ===&lt;br /&gt;
To find your Moodle site on the app login screen, try searching for the name of your school or learning organisation.&lt;br /&gt;
&lt;br /&gt;
If your school or organisation doesn’t appear in the search, you can try searching by your Moodle site URL address instead. If you don’t know the address of your Moodle site, here’s how you can find it:&lt;br /&gt;
# Open a web browser (like Chrome or Safari) and go to your school’s Moodle site login page.&lt;br /&gt;
# At the top of the page in the address bar, you&#039;ll see the URL address of your Moodle site, e.g. “campus.example.edu”. [[File:FAQ I cant find my site 1.png|alt=URL|thumb|none|&#039;&#039;campus.example.edu&#039;&#039;]]&lt;br /&gt;
# Copy the URL (don’t copy the /login nor what comes after), paste it into Your site in the app, then select Connect to your site. [[File:FAQ I cant find my site 2.png|alt=Adding an URL to the app|thumb|none|Adding an URL to the app]]&lt;br /&gt;
# Now you can log in to your site with your username and password.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you tried searching by URL address and still can’t find your Moodle site, please get in touch with the person who takes care of Moodle in your school or learning organisation.&lt;br /&gt;
===I can’t log in with the app===&lt;br /&gt;
To log in to your Moodle site using the app, you first need to connect to your school’s Moodle site (view [[I can’t find my Moodle site in the app]] if you can’t find your site).&lt;br /&gt;
&lt;br /&gt;
Once you’ve connected to your Moodle site, you should be able to log in with your usual username and password.&lt;br /&gt;
&lt;br /&gt;
If you forgot your username or password, select the option &#039;&#039;&#039;Forgotten your username or password?&#039;&#039;&#039;. If you still have trouble logging in or can’t see any options for retrieving your username or password, please get in touch with the person who takes care of Moodle in your school or learning organisation.&lt;br /&gt;
===I see an error message when I try to use the app===&lt;br /&gt;
If you see an error message that prevents you from using the app, please get in touch with the person who takes care of Moodle in your school or learning organisation. &lt;br /&gt;
&lt;br /&gt;
Some of the most common errors that your school or learning organisation will be able to fix are:&lt;br /&gt;
* Your token is expired or not valid.&lt;br /&gt;
* An error mentioning the parameter “includestealthmodules”.&lt;br /&gt;
* The web service function is not available.&lt;br /&gt;
* A message about site maintenance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you’re experiencing any of these errors, contact your school or learning organisation for help.&lt;br /&gt;
===What permissions does the app require?===&lt;br /&gt;
The app requires the following permissions:&lt;br /&gt;
* Record audio - for uploading to your Moodle site&lt;br /&gt;
* Read and modify the contents of your SD card - for content to be downloaded to your SD Card for offline access.&lt;br /&gt;
* Network access - to be able to connect with your Moodle site and check if you are connected, and if not to switch to offline mode.&lt;br /&gt;
* Run at startup - to receive local notifications even when the app is running in the background.&lt;br /&gt;
* Prevent phone from sleeping - to receive push notifications anytime.&lt;br /&gt;
===What are the minimum device requirements to use the Moodle app?===&lt;br /&gt;
Android devices: Require Android 7.0 or later. (Users with Android 5 and 6 can still use version 4.3, but they will not receive any new updates.)&lt;br /&gt;
&lt;br /&gt;
iOS devices (iPhones/iPads): Require iOS 13 or later. (Please note the app was only tested on versions iOS 14 and onward.)&lt;br /&gt;
&lt;br /&gt;
===I can&#039;t see my course on the app. What do I do?===&lt;br /&gt;
Check with your course tutor that you are correctly enrolled.&lt;br /&gt;
=== Why can&#039;t I upload my assignment on the app?===&lt;br /&gt;
If you’re experiencing any issue uploading assignment, please contact your school or learning organisation for help.&lt;br /&gt;
===Why can&#039;t I sometimes access the app or submit anything to it?===&lt;br /&gt;
This could be because of interruptions in your internet connection. Wait a while and try again. If you continue to have problems, contact your school or learning organisation for help.&lt;br /&gt;
===Is there a space limit on my files?===&lt;br /&gt;
Assignments will have a size limit which you can see, those are set by your teachers. For other space limit questions, check with your your school or learning organisation .&lt;br /&gt;
===When are activities completed offline synchronized?===&lt;br /&gt;
See [[Moodle app synchronization]].&lt;br /&gt;
===Why the site is asking for my username and password when an activity is opened in the browser?===&lt;br /&gt;
For security reasons, between auto-logins you must wait 6 minutes (this should not be a problem because most of the browsers will keep your Moodle session open).&lt;br /&gt;
In recent Moodle versions, the previous value can be configured in Site Administration &amp;gt; Mobile app authentication &amp;gt;  Minimum time between auto-login requests&lt;br /&gt;
&lt;br /&gt;
=== The Moodle app might seem slow (especially on Android devices) ===&lt;br /&gt;
If the app feels slow, it might be due to things outside the app itself. This can include:&lt;br /&gt;
* Slow internet connection&lt;br /&gt;
* Network problems&lt;br /&gt;
* The server responding slowly&lt;br /&gt;
* Content or settings not made for mobile&lt;br /&gt;
* Using the app on an old or slow device&lt;br /&gt;
&lt;br /&gt;
We test the app carefully on many sites before each release, and we’re confident it usually works as well as or better than the website.&lt;br /&gt;
&lt;br /&gt;
To make sure your site works well on mobile, please check [[Creating mobile-friendly courses]]&lt;br /&gt;
&lt;br /&gt;
Finally, to troubleshoot this problem, we recommend trying the application with our demo site: https://school.moodledemo.net. Simply use the username &amp;quot;student&amp;quot; and the relevant password to access the site. If you find that the navigation and overall experience with the app are improved, then the issue may be at the server level. In this case, we suggest contacting your school or learning organisation for further assistance.&lt;br /&gt;
&lt;br /&gt;
=== The Moodle app restarts/ closes / reopenes itself ===&lt;br /&gt;
This is likely because there are too many apps opened on your mobile device. Mobile devices have a finite amount of memory, and the device&#039;s memory manager is responsible for determining which applications to keep open and which to close.&lt;br /&gt;
To optimise your device&#039;s performance, we recommend closing all applications that are not currently in use. This will free up valuable memory and ensure that your device runs smoothly.&lt;br /&gt;
===I use LineageOS and I&#039;m having problems using the app===&lt;br /&gt;
LineageOS uses a different WebView implementation not compatible vith the app. You need to install &amp;quot;Android System WebView&amp;quot; from Google Play (or via a trusted apk) and enabling it via Settings &amp;gt; Developer options &amp;gt; WebView implementation.&lt;br /&gt;
===H5P packages and external content embedded via iframes are not working on iOS ===&lt;br /&gt;
This is caused by a new feature of iOS 14 called ITP that blocks cookies for external sites embedded in the app (the H5P content is played embedded in an iframe pointing to the Moodle website) unless the user enables a setting in the app to allow those cookies.&lt;br /&gt;
&lt;br /&gt;
The quick workaround is to enable the setting &amp;quot;Allow Cross-Website Tracking&amp;quot; available via the Settings app (look for the Moodle app, at the bottom) on your iPhone/iPad with iOS 14.&lt;br /&gt;
===I cannot reproduce audio that was recorded on browser on iOS devices (iPhones and iPads)===&lt;br /&gt;
This behaviour is related to this Moodle LMS bug: https://tracker.moodle.org/browse/MDL-80114&lt;br /&gt;
&lt;br /&gt;
=== I don&#039;t receive calendar notifications (reminders) when using Android 12 or above === &lt;br /&gt;
&lt;br /&gt;
In order to receive calendar notifications you need to allow alarms and reminders for the Moodle app. To do this:&lt;br /&gt;
* Open Android Settings and go to the Moodle app settings. Another way to reach these settings is by long-clicking the Moodle app icon and pressing &amp;quot;App info&amp;quot;.&lt;br /&gt;
* Make sure that Notifications are enabled.&lt;br /&gt;
* If you see a section called &amp;quot;Alarms &amp;amp; reminders&amp;quot;, make sure it is Allowed (this setting is disabled by default in Android 14+).&lt;br /&gt;
&lt;br /&gt;
==Teachers==&lt;br /&gt;
===How can I enable videos in my course to be downloaded?===&lt;br /&gt;
See the section &#039;Media download for offline usage&#039; in [[Creating Moodle-app-friendly courses]].&lt;br /&gt;
===Which course format is it best to use?===&lt;br /&gt;
Topics or weekly course format is best suited to mobile devices.&lt;br /&gt;
===How do I make YouTube links open automatically in the app?===&lt;br /&gt;
Add YouTube links as a [[URL resource]].&lt;br /&gt;
===Why can&#039;t my students see their courses?===&lt;br /&gt;
If you or an administrator have correctly enrolled them in a course, they can see it in their mobile app. If they are correctly enrolled but can still not see their course, ask them to check with your Moodle site administrator.&lt;br /&gt;
=== I can&#039;t mark assignments in the app===&lt;br /&gt;
If you are experiencing problems when grading, please review that you are using the correct decimal separators (if the app interface is in English, you must use a period).&lt;br /&gt;
===What communications tools can I use in the app to engage with my learners?===&lt;br /&gt;
See [[Mobile app notifications]]. Chat, forums and messaging are all supported by the app.&lt;br /&gt;
===My Vimeo videos are not playing in the app===&lt;br /&gt;
In older versions of Moodle (pre-Moodle 3.7), it may be necessary to activate the &amp;quot;Allow frame embedding&amp;quot; admin setting. However, for those using Moodle version 3.7 or later, it is important to check whether a Proxy/Firewall/Web Server security module is setting the X-Frame-Options header in your HTTP request responses. If this is the case, it is recommended to deactivate this feature as it may cause conflicts, as Moodle already sets this header by default. &lt;br /&gt;
&lt;br /&gt;
This setting is typically found in any of these configuration files .htaccess, httpd.conf or VirtualHost. To disable it, you can just use: Header always unset X-Frame-Options &lt;br /&gt;
&lt;br /&gt;
You may also use Bootstrap responsive classes: https://getbootstrap.com/docs/4.0/utilities/embed/, for example, &amp;lt;div class=&amp;quot;embed-responsive&amp;quot;&amp;gt;&lt;br /&gt;
For older versions, see this forum discussion with a workaround: https://moodle.org/mod/forum/discuss.php?d=327342&lt;br /&gt;
&lt;br /&gt;
If the issue is with vimeo videos on Moodle sites 3.10 or 3.11, please update the Moodle site to the latest version possible (at least 3.10.10 or 3.11.6). (See https://tracker.moodle.org/browse/MDL-74042)&lt;br /&gt;
===ReCaptcha doesn&#039;t work on my site===&lt;br /&gt;
In older versions of Moodle (pre-Moodle 3.7), it may be necessary to activate the &amp;quot;Allow frame embedding&amp;quot; admin setting. However, for those using Moodle version 3.7 or later, it is important to check whether a Proxy/Firewall/Web Server security module is setting the X-Frame-Options header in your HTTP request responses. If this is the case, it is recommended to deactivate this feature as it may cause conflicts, as Moodle already sets this header by default. &lt;br /&gt;
===H5P packages don&#039;t work on my site===&lt;br /&gt;
In older versions of Moodle (pre-Moodle 3.7), it may be necessary to activate the &amp;quot;Allow frame embedding&amp;quot; admin setting. However, for those using Moodle version 3.7 or later, it is important to check whether a Proxy/Firewall/Web Server security module is setting the X-Frame-Options header in your HTTP request responses. If this is the case, it is recommended to deactivate this feature as it may cause conflicts, as Moodle already sets this header by default. &lt;br /&gt;
&lt;br /&gt;
This setting is typically found in any of these configuration files .htaccess, httpd.conf or VirtualHost. To disable it, you can just use: Header always unset X-Frame-Options &lt;br /&gt;
&lt;br /&gt;
This can also happen when you are using the non-official H5P plugin (mod_hvp), in that case you will see the following message: This site is not configured properly for displaying mobile H5P content. Please contact a site administrator so they can apply the above suggested configuration changes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cookies issues&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If your site uses HTTPS please ensure that the &amp;quot;Secure cookies only&amp;quot; (cookiesecure) setting under Site administration &amp;gt; HTTP security is enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency errors&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the following error appears &amp;quot;Missing dependency H5P.Editor. something X required by H5P.Editor. something Y&amp;quot;. H5P packages need to include all the libraries (dependencies) they use so the package is self-contained. But sometimes packages might be missing at least one dependency.&lt;br /&gt;
&lt;br /&gt;
In order to fix this, you could do the following:&lt;br /&gt;
&lt;br /&gt;
Open Moodle’s Content Bank (from the link in the problematic H5P settings page) and upload your H5P package there, once uploaded, you will see the H5P package and an “Edit” button, click on that button so the editor opens, scroll down and click “Save”.&lt;br /&gt;
Now, you can replace the problematic H5P with this new one, for this, you can just include it from the Content bank by opening the activity settings page and the file picker.&lt;br /&gt;
=== I use a Moodle plugin but the app says it is not supported ===&lt;br /&gt;
You should contact the plugin developer and point him to this documentation: https://docs.moodle.org/dev/Moodle_Mobile_Remote_addons where it is explained how to add support to plugins in the Mobile app.&lt;br /&gt;
&lt;br /&gt;
There is a list of Moodle plugins supported by the app here: https://moodle.org/plugins/browse.php?list=award&amp;amp;id=6&lt;br /&gt;
=== I have problems playing SCORM packages ===&lt;br /&gt;
This might be caused because:&lt;br /&gt;
* The SCORM was added using an advanced option (remote imsmanifest.xml packages or file system repository unzipped SCORMS)&lt;br /&gt;
* The SCORM ZIP file was created using a tool that does not create standardised ZIP files (for example, zip files containing the inverted path separator &amp;quot;\&amp;quot; will not work on Android)&lt;br /&gt;
Please refer to [[Moodle app SCORM player]] for additional information.&lt;br /&gt;
=== My quizzes or lessons are not working offline ===&lt;br /&gt;
You need to edit the quiz or lesson activity settings and enable the &amp;quot;Allow lesson/quiz to be attempted offline using the mobile app&amp;quot; configuration option.&lt;br /&gt;
=== Maths notation is not displaying correctly in the app ===&lt;br /&gt;
If you are having issues with MathJax, please enable the [[TeX notation filter]] also.&lt;br /&gt;
&lt;br /&gt;
If you have both filters enabled, please leave MathJax above TeX so it is always processed before TeX.&lt;br /&gt;
&lt;br /&gt;
If the issue persists, we suggest disabling the &#039;Remove HTML tags from all activity names&#039; (&#039;&#039;formatstringstriptags&#039;&#039;) option in &#039;&#039;Site Administration&#039;&#039; &amp;gt; &#039;&#039;Appearance&#039;&#039; &amp;gt; &#039;&#039;HTML settings&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== How can I disable text selection / copy in the app? ===&lt;br /&gt;
You can create a remote theme and add some custom CSS rules to disable it, see https://docs.moodle.org/dev/Moodle_Mobile_Themes&lt;br /&gt;
=== My images, videos or audios stop working after the first time ===&lt;br /&gt;
Please make sure the URL you&#039;re using on the media file doesn&#039;t have any redirect (e.g. http to https), always try to use the final URL. There&#039;s a bug in the library we use to download those files, it doesn&#039;t work when downloading files with redirects. We have plans to remove that library from the app, but since then please always try to use URLs without redirects.&lt;br /&gt;
&lt;br /&gt;
==Administrators==&lt;br /&gt;
=== What plans are available for the Moodle app? ===&lt;br /&gt;
There are three main plans available for the Moodle app: Free, Pro, and Premium, each offering different features and benefits. In addition to the three main plans, there is also a Branded Moodle App (BMA) option. The BMA is a custom-built app that is branded to your organization. Learn more in [[Moodle app plans]].&lt;br /&gt;
=== How can I have my site listed in the Moodle app site finder? ===&lt;br /&gt;
Please refer to our [[Moodle app guide for admins]] for instructions.&lt;br /&gt;
=== How can I debug errors in the app? ===&lt;br /&gt;
Go to the More tab and then to Settings &amp;gt; General. Enable &amp;quot;Display debug messages&amp;quot;. This will show an explanatory message when an error occurs, alternatively, you can do a full debugging via: https://docs.moodle.org/dev/Moodle_Mobile_debugging_WS_requests&lt;br /&gt;
&lt;br /&gt;
=== How can I disable features in the app? ===&lt;br /&gt;
Please go to &#039;&#039;Site administration &amp;gt; Mobile features &amp;gt; Disabled features&#039;&#039; and select all the features you want to disable.&lt;br /&gt;
&lt;br /&gt;
To select multiple features you will have to use Ctrl (Cmd in Mac) + Click&lt;br /&gt;
&lt;br /&gt;
=== How can I add custom menu items in the app? ===&lt;br /&gt;
You can add custom additional menu items in the &amp;quot;more&amp;quot; menu of the app, the one represented by three consecutive dots.&lt;br /&gt;
&lt;br /&gt;
Please go to &#039;&#039;Site administration &amp;gt; Mobile features &amp;gt; Custom menu items&#039;&#039; and follow the instructions in [[Moodle_app_guide_for_admins#Custom_menu_items|Moodle app guide for admins]] for the correct format to use.&lt;br /&gt;
&lt;br /&gt;
As a quick example:&lt;br /&gt;
  Academy information|https://yoursite.com/mod/page/view.php?id=X |app|en|home&lt;br /&gt;
&lt;br /&gt;
=== How can I customise the language strings in the app? ===&lt;br /&gt;
&lt;br /&gt;
Please go to &#039;&#039;Site administration &amp;gt; Mobile features &amp;gt; Custom language strings&#039;&#039; and follow the instructions in [[Moodle_app_guide_for_admins#Custom_language_strings|Moodle app guide for admins]] for the format to use.&lt;br /&gt;
&lt;br /&gt;
As a quick example:&lt;br /&gt;
 core.user.student|Learner|en&lt;br /&gt;
 core.user.student|Aprendiz|es&lt;br /&gt;
&lt;br /&gt;
=== I can connect with my iPhone (or iPad) but not with my Android phone ===&lt;br /&gt;
This usually happens when the site is using https and the certificate is not correctly configured or it is using an old protocol, please use these pages to check this certificate: https://www.sslshopper.com/ssl-checker.html, https://www.geocerts.com/ssl_checker, and https://www.ssllabs.com/ssltest/analyze.html&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The certificate of this site cannot be trusted by your device: TLS connection could not be established: javax.net.ssl.SSLHandshakeException&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This error could be caused because in any of the certification paths there is a certificate using SHA-1. Starting Android 10 this is not allowed, more information here: https://developer.android.com/privacy-and-security/security-ssl&lt;br /&gt;
&lt;br /&gt;
You could easily check the previous using https://www.ssllabs.com/ssltest/analyze.html and going to the Certification Paths -&amp;gt; Android section, if there is any mention to SHA-1 this could be the cause. You will need to upgrade your certificates to avoid using SHA-1.&lt;br /&gt;
&lt;br /&gt;
=== My certificate is fine but I still can&#039;t connect ===&lt;br /&gt;
This is usually a server configuration problem caused by any of the following server configuration issues:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Access to XMLHttpRequest at &#039;https://yoursite/webservice/rest/server.php?moodlewsrestformat=json&amp;lt;nowiki/&amp;gt;...&#039; from origin &#039;&amp;lt;nowiki&amp;gt;http://localhost&#039;&amp;lt;/nowiki&amp;gt; has been blocked by CORS policy: No &#039;Access-Control-Allow-Origin&#039; header is present on the requested resource.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is because a Proxy/Firewall/Web Server security module is removing automatically the Access-Control-Allow-Origin: * header that Moodle sets to allow Web Service requests. &lt;br /&gt;
&lt;br /&gt;
It is totally secure to remove that Proxy/Firewall/Web Server rule/configuration because that header is only set by Moodle when needed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;access-control-allow-origin cannot contain more than one origin&amp;quot;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
iOS and Android apps do not allow the following header to contain more than one item: &amp;quot;Access-Control-Allow-Origin&amp;quot;. For example, a header like this: Access-Control-Allow-Origin: *, https://mydomain.com will cause problems.&lt;br /&gt;
&lt;br /&gt;
This HTTP header is not valid, according to the specification you can only specify a domain or a &amp;quot;*&amp;quot;:&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin&lt;br /&gt;
&lt;br /&gt;
Please, review if you have a Proxy/Firewall/Web Server adding automatically values to that HTTP header.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Security rules are blocking requests using the Accept-Charset header&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some security rules, such as OWASP ModSecurity, are blocking requests with this header that is sent by the Moodle App. In future releases of the app, this problem will be fixed. But in the meantime, you should disable it. Find more about this in MOBILE-4342.&lt;br /&gt;
=== My certificate is fine but the Moodle app is detecting http instead of https ===&lt;br /&gt;
If the Moodle app is detecting http instead of https, please revise config.php (check &amp;quot;wwwroot&amp;quot; as well as &amp;quot;httpswwwroot&amp;quot;)&lt;br /&gt;
===After updating Moodle LMS to a recent version my users cannot login===&lt;br /&gt;
This only applies to sites that are configured to use log in via an embedded browser pointing to their Moodle site.&lt;br /&gt;
This behaviour could be related to this Moodle LMS issue: https://tracker.moodle.org/browse/MDL-81897.&lt;br /&gt;
There are several ways to fix this issue:&lt;br /&gt;
# Upgrade their Moodle site to any of the indicated version in the issue that will solve the problem&lt;br /&gt;
# Manually apply the patch here: https://github.com/jleyva/moodle/compare/462d5f04a8...MDL-81897-master&lt;br /&gt;
# Immediate workaround: Change the app authentication so it will launch in a separate browser, by going to Site admin &amp;gt; Mobile app authentication &amp;gt; Type of login (and select the option that mentions external/system browser), remember to Save Changes&lt;br /&gt;
We’d recommend doing 3) that will immediately address the issue that is affecting new logins.&lt;br /&gt;
===I can&#039;t get the app to work. What can I do?===&lt;br /&gt;
Assuming you have enabled mobile services on your site, please check:&lt;br /&gt;
# If your site uses an SSL certificate, it must be a trusted certificate, not self-signed. Please use these tools or a similar one to check that your certificate is valid: [https://www.sslshopper.com/ssl-checker.html SSL Checker], [https://www.geocerts.com/ssl_checker SSL Checker], and [https://www.ssllabs.com/ssltest/analyze.html SSL Server Test]. All the checks must be ok, including the &amp;quot;Certificate Chain Complete&amp;quot;. Otherwise the app might work on iOS but not on Android.&lt;br /&gt;
# Make sure that the &amp;quot;Access-Control-Allow-Origin&amp;quot; header only contains one item. For example, a header like this: Access-Control-Allow-Origin: *, &amp;lt;nowiki&amp;gt;https://mydomain.com&amp;lt;/nowiki&amp;gt; will cause problems.&lt;br /&gt;
# [[Debugging]] is disabled (in &#039;&#039;Site administration &amp;gt; Development &amp;gt; Debugging&#039;&#039;)&lt;br /&gt;
# The ADOdb debug option is disabled if you are using the external database auth or enrolment plugin (in &#039;&#039;Plugins &amp;gt; Authentication &amp;gt; External database&#039;&#039; and in &#039;&#039;Plugins &amp;gt; Enrolment &amp;gt; External database&#039;&#039;).&lt;br /&gt;
# SHA-1 https certificates are not supported anymore in Chrome, this means that the Android version of the app won&#039;t work for your site. If your site doesn&#039;t work in desktop Chrome or Chromium it won&#039;t work in the Android app. See https://blog.chromium.org/2014/09/gradually-sunsetting-sha-1.html for more information&lt;br /&gt;
# If you are using IIS check that Anonymous access is not disabled for the /webservice directory.&lt;br /&gt;
# If you are using a web application firewall like AWS WAF, StackPath, Barracuda, Cloudflare, Juniper, etc... try to temporary disable it to check if that&#039;s the cause. If so, you&#039;ll have to whitelist these endpoints: login/token.php, webservice/*, lib/ajax/*, media/player/vimeo/wsplayer.php and /tokenpluginfile.php&lt;br /&gt;
You can also add WAF rules to allow traffic by detecting the app user agent such as: (http.user_agent contains &amp;quot;MoodleMobile&amp;quot;)&lt;br /&gt;
If you still have a problem, please post in the [https://moodle.org/mod/forum/view.php?id=7798 Moodle for mobile forum].&lt;br /&gt;
&lt;br /&gt;
If the issue started after updating Moodle LMS please visit [[After updating Moodle LMS to a recent version my users cannot login]].&lt;br /&gt;
&lt;br /&gt;
=== I cannot access with old users, but I can with recently created ones! ===&lt;br /&gt;
Please, do a &amp;quot;Purge all caches&amp;quot; via the Moodle administration settings, this will solve the problem.&lt;br /&gt;
===I can&#039;t view the courses tab as an administrator===&lt;br /&gt;
The Moodle app only displays courses you are enrolled in. If you want to view a course as an admin, you need to enrol in it.&lt;br /&gt;
===My Moodle site uses a SSO auth method (Shibboleth, CAS, Google OAuth, etc) and the app is not working===&lt;br /&gt;
See the section &#039;Mobile authentication&#039; in the [[Moodle app guide for admins]] for details of how to configure it.&lt;br /&gt;
&lt;br /&gt;
If configured the app is still not connecting: If your site uses an SSL certificate, it must be a trusted certificate, not self-signed. Please use this tool or a similar one to check that your certificate is fine: [https://www.geocerts.com/ssl_checker SSL Checker]. All the checks must be OK, including the &amp;quot;Certificate Chain Complete&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If your SSO method is unable to authenticate when using an &amp;quot;embedded browser&amp;quot; (it gives an authentication error), please check if it works with a &amp;quot;browser window&amp;quot;. If it does work with the browser window then it means your SSO is performing an HTTP redirect, and these kind of redirects aren&#039;t supported by the app (the request is redirected by the browser not passing the POST parameters). Unfortunately, this is something we cannot control in the Mobile app (it can&#039;t be handled via JavaScript). For further information, see http://stackoverflow.com/questions/228225/prevent-redirection-of-xmlhttprequest and http://stackoverflow.com/questions/4168784/ajax-redirection-handling&lt;br /&gt;
&lt;br /&gt;
There are only 2 possible solutions: set the authentication via a &amp;quot;browser window&amp;quot; instead of an embedded one (please notice this won&#039;t work in the Linux desktop app), or remove the redirect from the SSO auth method.&lt;br /&gt;
===SSO is not working with my custom auth plugin===&lt;br /&gt;
SSO should work in any plugin if the plugin handles correctly the $SESSION-&amp;gt;wantsurl, this is the way SSO works when it is launched via the app:&lt;br /&gt;
* It launchs this URL https://yourmoodle/admin/tool/mobile/launch.php?service=local_mobile&amp;amp;passport=abc in the device browser &lt;br /&gt;
* If the user is not logged in, the browser will redirect the user to the login page&lt;br /&gt;
* If the auth plugin used implements correctly the handling of the wantsurl session var, once the user has logged in, the browser should redirect back to the https://yourmoodle/admin/tool/mobile/launch.php?service=local_mobile&amp;amp;passport=abc URL that will launch the mobile app via the custom URL protocol&lt;br /&gt;
Custom auth plugins may be failing in the last step,not redirecting back to tool/mobile, this will happen only if the plugin does not support correctly the $SESSION-&amp;gt;wantsurl.&lt;br /&gt;
&lt;br /&gt;
The SAML plugin works correctly but some modifications of that plugin may not work if important lines are changed.&lt;br /&gt;
===I am having problems requesting an airnotifier access key===&lt;br /&gt;
If you have registered your site but are still unable to request an access key, please register your site on the Moodle Apps Portal https://apps.moodle.com once your site is registered there, an Airnotifier access key will be automatically generated for you.&lt;br /&gt;
=== Push notifications are not working ===&lt;br /&gt;
Please check [[Mobile app notifications#Troubleshooting]]&lt;br /&gt;
=== How notifications icon badges are updated ===&lt;br /&gt;
&#039;&#039;&#039;Android&#039;&#039;&#039;: Not all Android devices support icon badges so in some cases badges will never display numbers, also, depending on the device only a badge indicating that there are new notifications will be displayed when receiving a Push notification when the app is not in the foreground.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;iOS&#039;&#039;&#039;: The icon badge counter is only updated when the app is open and it will reflect the number of notifications pending reading or the number of message senders that sent you a message you have not read yet&lt;br /&gt;
&lt;br /&gt;
In general, for iOS the icon badge displayed number should match the one displayed at the bottom of the app (or it should be the sum of the notifications and messages badges) and is not an indicator of the number of Push notifications the user has received, it acts as a reminder of pending notifications to be read that only gets updated when the user open the apps&lt;br /&gt;
&lt;br /&gt;
There is an open issue to improve the behaviour on iOS, please watch MDL-73707&lt;br /&gt;
=== I configured &#039;QR code access&#039; to automatic login, but the app still asks for credentials  ===&lt;br /&gt;
Automatic authentication only works for Pro and Premium sites. You can see the app plans [https://moodle.com/app/ in this site].&lt;br /&gt;
&lt;br /&gt;
If you&#039;re getting an error saying that the device you&#039;re using to connect isn&#039;t in the same network as the device that displays the QR code but both devices are connected to the same network, please check the section: [[#ipmismatch:_.27Client_IP_address_mismatch.27|ipmissmatch: &#039;Client IP address mismatch&#039;]].&lt;br /&gt;
&lt;br /&gt;
=== I can log in on my Moodle site but I see a blank page or the app styles broken ===&lt;br /&gt;
This is usually because your Moodle site has a customised CSS. &lt;br /&gt;
&lt;br /&gt;
Please try leaving empty CSS (&#039;&#039;mobilecssurl&#039;&#039;) on Site administration &amp;gt; Mobile app &amp;gt; Mobile appearance. If that works, please read [https://docs.moodle.org/dev/Moodle_App_Remote_Themes Moodle App Remote Themes] and create a new CSS file using the variables mentioned there&lt;br /&gt;
&lt;br /&gt;
===The Moodle app does not connect to MoodleBox (or other internal self-hosted systems)===&lt;br /&gt;
You will need to disable SSL to make the app works, please see this forum discussion for more information: https://moodle.org/mod/forum/discuss.php?d=424353#p1739474&lt;br /&gt;
===I think I found a bug with the app. Where can I report it?===&lt;br /&gt;
# Log in to the [https://tracker.moodle.org/browse/MOBILE Moodle Mobile tracker] (you&#039;ll need to [http://tracker.moodle.org/secure/Signup%21default.jspa create a tracker account] if you&#039;ve not done so previously)&lt;br /&gt;
# Check whether the issue has already been reported by doing a [https://tracker.moodle.org/issues/?jql=project%20%3D%20MOBILE search]&lt;br /&gt;
# If not, report the bug by clicking the &#039;Create Issue&#039; link at the top right of the page, selecting &#039;Moodle app&#039; as the project&lt;br /&gt;
# Add a detailed description providing as much information as possible (Moodle version, app version, device model and operating system, etc...), then click the Create button&lt;br /&gt;
===How can I get the app in my language?===&lt;br /&gt;
[[File:setting the app lang.png|thumb|100px|Setting your language]]&lt;br /&gt;
The Moodle app automatically detects your mobile&#039;s language and displays in the same language (if the translation exists). Otherwise, you can set the app language in App settings &amp;gt; General.&lt;br /&gt;
&lt;br /&gt;
See also a post explaining how multi-lang works in the Moodle app: [https://moodle.org/mod/forum/discuss.php?d=453445#p1825637 Re: Language selector missing in Moodle app]&lt;br /&gt;
&lt;br /&gt;
If the Moodle app is not yet available in your language, please contribute a translation! See [https://docs.moodle.org/dev/Translating%20Moodle%20Mobile Translating Moodle Mobile] for details of what to do.&lt;br /&gt;
&lt;br /&gt;
=== Changes made to a Moodle site URL can cause logged-in users’ data to fail when synchronising. ===&lt;br /&gt;
We recommend that administrators manually log out all users after a site rename. If your site URL changes and have site users that are using the mobile Moodle App we suggest the following:&lt;br /&gt;
* For users that have not yet logged in - we recommend sending them the new URL&lt;br /&gt;
*   For users already using the mobile Moodle App and potentially logged in request them to:&lt;br /&gt;
** log out of the mobile Moodle App,&lt;br /&gt;
** delete the old site, and&lt;br /&gt;
** log in using the new URL&lt;br /&gt;
Logged in Moodle users can continue working with the previous URL (with cached information) but they will not be able to synchronise the new information (therefore not receiving new information from their teachers, and teachers not receiving data or submissions from those students).&lt;br /&gt;
* To avoid the risk of data not synchronising, we recommend the site administrator logs out all app users, by manually deleting their tokens:&lt;br /&gt;
** Go to Site administration&lt;br /&gt;
** Click Server &lt;br /&gt;
** Click Web services &lt;br /&gt;
** Click Manage tokens &lt;br /&gt;
** Delete the tokens&lt;br /&gt;
Take into account that you still need to request your users to log in using the new URL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Embedded content is not working ===&lt;br /&gt;
&lt;br /&gt;
This could be caused because your site is using a Content-Security-Policy that is preventing the app from embedding content.&lt;br /&gt;
&lt;br /&gt;
You can easily detect this when an error like this is displayed (javascript console): Refused to load URL because it does not appear in the frame-ancestors directive of the Content Security Policy.&lt;br /&gt;
&lt;br /&gt;
If that&#039;s the case, you&#039;d need to add the following elements: http://localhost moodleappfs://localhost at the end of the &amp;quot;Content-Security-Policy&amp;quot; HTTP header:&lt;br /&gt;
&lt;br /&gt;
An example of a CSP allowing embedding Vimeo videos in the site and content in the app:&lt;br /&gt;
Content-Security-Policy: frame-ancestors &#039;self&#039; https://*.vimeocdn.com https://*.vimeows.com https://*.vimeo.com http://localhost moodleappfs://localhost ;&lt;br /&gt;
&lt;br /&gt;
Other type of embedded content that does not work is content hosted by Microsoft tools that require session or any type of authentication, such as SharePoint content.&lt;br /&gt;
&lt;br /&gt;
=== Some activities are displayed incorrectly (blank, just a vertical line, ..) on the app ===&lt;br /&gt;
Please visit the forum post [[https://moodle.org/mod/forum/discuss.php?d=461909#p1854918| Some lesson activities do not display at all]].&lt;br /&gt;
&lt;br /&gt;
==Error messages==&lt;br /&gt;
=== &#039;Coding error: version.php file is missing for the component&#039; ===&lt;br /&gt;
This error message indicates that that plugin is not correctly installed (or uninstalled) on the Moodle site you use (see [[Installing plugins]]). Please review the mod/certificate folder to check if the version.php file is missing (or has incorrect permissions) as well as purge cache too.&lt;br /&gt;
=== &#039;Can not find data record in database table external_functions&#039; ===&lt;br /&gt;
This error usually happens due to a bad configuration or setting value in your Moodle site, please check:&lt;br /&gt;
# The user quota global setting should be an integer. For more details, see the discussion [https://moodle.org/mod/forum/discuss.php?d=320873 How to enable Moodle Mobile App for all accounts].&lt;br /&gt;
# The &#039;&#039;usermaxuploadfilesize&#039;&#039; should be an integer, please try to decrease the size. It can be configured in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; Site Policies &amp;gt; Maximum uploaded file size&#039;&#039;. The default value (Site upload limit) depends on the PHP configuration, you might have to change the value of &#039;&#039;upload_max_filesize&#039;&#039; and &#039;&#039;post_max_size&#039;&#039; in your &#039;&#039;php.ini&#039;&#039; file.&lt;br /&gt;
# The user &amp;quot;lang&amp;quot; field in the database is set to a correct value and existing language installed in the site. Some times the lang field is set via external systems to incorrect values or pointing to a language pack that was uninstalled. Please, note that to fix this you need direct access to the database and your &#039;user&#039; and &#039;course&#039; table.&lt;br /&gt;
===&#039;Cannot connect: Verify that you have typed correctly the URL and that your site uses Moodle 3.5 or later&#039;===&lt;br /&gt;
Take into account that the app will only connect to Moodle LMS sites version 3.5 onward.&lt;br /&gt;
Please also check:&lt;br /&gt;
# Mobile services are enabled for the site.&lt;br /&gt;
# The user is entering the correct URL for the site (see FAQ above)&lt;br /&gt;
# For https sites, the certificate is valid (see FAQ above)&lt;br /&gt;
===&#039;Invalid Moodle site version. The Moodle app only supports Moodle systems 3.5 onwards&#039;===&lt;br /&gt;
The app will only connect to Moodle LMS sites version 3.5 onward (see [https://docs.moodle.org/35/en/Upgrading Upgrade to 3.5] as well as [[Upgrade overview]]).&lt;br /&gt;
===&#039;We lost connection; you need to reconnect. Your token is now invalid.&#039; on my custom version of the Moodle app ===&lt;br /&gt;
Please check:&lt;br /&gt;
# You have followed all the steps listed in [https://docs.moodle.org/dev/Moodle%20Mobile%20Developing%20a%20plugin%20tutorial Moodle Mobile Developing a plugin tutorial]&lt;br /&gt;
# You have enabled the [[Capabilities/moodle/webservice:createtoken|moodle/webservice:createtoken]] for the authenticated user&lt;br /&gt;
===&#039;No permission to create web service token for the service local_mobile&#039; when attempting to log in (any user that it is not an admin)===&lt;br /&gt;
Please check you have enabled the moodle/webservice:createtoken for the authenticated user or any global role you want to allow to use the mobile app&lt;br /&gt;
===&#039;No permission to create web service token for the service local_mobile&#039; when attempting to log in as an admin===&lt;br /&gt;
You need to create a token for the admin account (only) as follows:&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Web services &amp;gt; Manage tokens&#039;&#039;&lt;br /&gt;
# Click Add&lt;br /&gt;
# Enter the admin username and select &#039;Moodle app additional features service&#039; (i.e. do NOT leave it as &#039;Moodle app web service&#039;)&lt;br /&gt;
# Click the &#039;Save changes&#039; button.&lt;br /&gt;
===&#039;Invalid response value detected&#039; when accessing the site ===&lt;br /&gt;
The user quota global setting should be an integer. For more details, see the discussion [https://moodle.org/mod/forum/discuss.php?d=320873 How to enable Moodle Mobile App for all accounts].&lt;br /&gt;
=== &#039; Invalid response value detected: Invalid external api response: the value is &amp;quot;&amp;quot;, the server was expecting &amp;quot;raw&amp;quot; type&amp;quot; ===&lt;br /&gt;
This usually happens when there is a field with value NULL in a table in the database that should not be there. This may happen if your Moodle has been upgraded over many years and the database schema is broken.&lt;br /&gt;
&lt;br /&gt;
To fix it, you can do the following: &lt;br /&gt;
* Detect the field that is causing the problem (it should be indicated before the error message)&lt;br /&gt;
* Fix the field, for example, for the password field in the lesson table: UPDATE mdl_lesson SET password = &#039;&#039; WHERE password IS NULL (remember that your table prefix can be different than mdl_)&lt;br /&gt;
===&#039;Invalid response value detected&#039; when accessing My Courses or Course Overview ===&lt;br /&gt;
This usually happens when a course uses a language that isn&#039;t installed in the site. Please make sure that all courses use valid languages. This can be easily checked in the database, table &amp;quot;course&amp;quot;, there is a column named &amp;quot;lang&amp;quot;.&lt;br /&gt;
===&#039;A required parameter (username) was missing&#039;===&lt;br /&gt;
This may happen if your site implements HTTP redirects; the request is redirected by the browser not passing the POST parameters.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, this is something we cannot control in the Mobile app (it can&#039;t be handled via JavaScript). For further information, see http://stackoverflow.com/questions/228225/prevent-redirection-of-xmlhttprequest and http://stackoverflow.com/questions/4168784/ajax-redirection-handling&lt;br /&gt;
&lt;br /&gt;
The solution is to change the HTTP redirect and use an HTML page with a meta tag or JavaScript redirect.&lt;br /&gt;
===&#039;Cannot get course contents&#039;===&lt;br /&gt;
This usually happens when the course is using a course format plugin that was uninstalled from the server or that was not properly installed.&lt;br /&gt;
&lt;br /&gt;
Please, reinstall again the course format plugin.&lt;br /&gt;
===&#039;Access control exception&#039; or &#039;Your authentication token is invalid or has expired&#039;===&lt;br /&gt;
Please double-check that &#039;Enable web services for mobile devices&#039; (&#039;&#039;enablemobilewebservice&#039;&#039;) is actually enabled. (It might be unabled if for example you have reseted some roles.)&lt;br /&gt;
&lt;br /&gt;
If this error appears as soon as you enter the username and password for a new site, then it probably means that the token expiration time is badly configured. This is how to fix it:&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Security &amp;gt; Site security settings&#039;&#039;.&lt;br /&gt;
# Find the setting named &#039;&#039;User created token duration&#039;&#039;.&lt;br /&gt;
# If the value is set to 0 or it&#039;s too low, please set it back to a valid value (the default value is 12 weeks).&lt;br /&gt;
# Click the &#039;Save changes&#039; button.&lt;br /&gt;
&lt;br /&gt;
===ipmismatch: &#039;Client IP address mismatch&#039;===&lt;br /&gt;
This error can appear when a user opens your site in a browser while using the app. This happens if your site is behind a proxy and you&#039;re using one of these Moodle versions o higher: 3.5.11, 3.6.9, 3.7.5, 3.8.2, 3.9.0.&lt;br /&gt;
&lt;br /&gt;
To fix it:&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Administration &amp;gt; Server &amp;gt; HTTP&#039;&#039;.&lt;br /&gt;
# Find the setting named &#039;&#039;Ignore reverse proxies&#039;&#039; (reverseproxyignore).&lt;br /&gt;
# Enter the IP of your proxy (or range of IPs).&lt;br /&gt;
# Click the &#039;Save changes&#039; button.&lt;br /&gt;
If you are still experiencing issues please try to change this setting &amp;quot;getremoteaddrconf&amp;quot; (Logged IP address source) to the different existing values.&lt;br /&gt;
&lt;br /&gt;
Finally, it is possible to disable the IP restriction checks for functionality such as the QR login, to do that, go to Site administration &amp;gt; Mobile app &amp;gt; Mobile app authentication, and disable the &amp;quot;QR authentication same IP check&amp;quot; setting.&lt;br /&gt;
=== &#039;The param &amp;quot;includestealthmodules&amp;quot; is invalid&#039; ===&lt;br /&gt;
Please contact your learning organisation so they upgrade to at least Moodle 3.5.3 (see [https://docs.moodle.org/35/en/Upgrading Upgrade to 3.5] as well as [[Upgrade overview]]) or they manually apply the patch listed here [[MDL-63542]].&lt;br /&gt;
&lt;br /&gt;
==Older versions of the Moodle app==&lt;br /&gt;
We always recommend using the last version of the Moodle App but some times users are still using older versions this is the reason we are keeping this list:&lt;br /&gt;
&lt;br /&gt;
=== Some users are asked to reauthenticate too often when they browse the site (Moodle App &amp;lt;3.9.3) ===&lt;br /&gt;
This can happen if the app is sending too many variables to a WebService, e.g. because a course has a large number of sections and/or activities. This error was fixed in the 3.9.3 version of the app, but if you are using an older version of the app you can increase the value of &#039;&#039;max_input_vars&#039;&#039; in &#039;&#039;php.ini&#039;&#039; to fix it in your server.&lt;br /&gt;
&lt;br /&gt;
=== After upgrading to 3.9.5 some of my plugins have stopped working ===&lt;br /&gt;
The Moodle App 3.9.5 version came with some breaking changes for plugins, most of the existing plugins have been updated to support the new changes.&lt;br /&gt;
Please check the following list of plugins that should work for 3.9.5 once you have upgraded to the latest version indicated in the document: https://docs.google.com/spreadsheets/d/1E9PqcUBpp9SAfQc_zJtX5tf9GeS3UN76A85IrrB4UDw/edit#gid=0&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7798 Moodle for mobile forum] on moodle.org.&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[de:Moodle Mobile - FAQ]]&lt;br /&gt;
[[ca:Moodle Mobile FAQ]]&lt;br /&gt;
[[es:Moodle app FAQ]]&lt;br /&gt;
[[fr:Moodle pour les mobiles]]&lt;br /&gt;
[[ja:バイルMoodle FAQ]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_FAQ&amp;diff=153090</id>
		<title>Moodle app FAQ</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_FAQ&amp;diff=153090"/>
		<updated>2025-05-16T08:16:25Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* The Moodle app might seem slow (especially on Android devices) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
==Students==&lt;br /&gt;
===How can I log in?===&lt;br /&gt;
To log in to your Moodle site with the Moodle App, you need the URL (web address) of the Moodle site that you’re trying to access. If your organisation has Search enabled, you can try searching by the name of your organisation or eLearning site.&lt;br /&gt;
&lt;br /&gt;
If your organisation allows you to log in via QR code, you’ll find the QR code at the bottom of your user profile on your Moodle site. You just need to press “Scan QR code” on the app, scan the QR code on your profile and you’ll be logged in automatically.&lt;br /&gt;
&lt;br /&gt;
If your organisation allows you to log in using face recognition or fingerprint, you can activate this in the App, going to User account &amp;gt; Preferences. You’ll need to have biometric authentication enabled in your own device’s settings. &lt;br /&gt;
===Who can I contact for help with the app?===&lt;br /&gt;
If you’re a student and need help with issues related to logging in, registering to a Moodle site or trouble connecting to the app, you should contact your school or learning organisation. For example, one of your teachers, or the person who takes care of Moodle.&lt;br /&gt;
Moodle HQ make the Moodle software and the Moodle app, but they don’t manage nor have access to your Moodle site or your user data.&lt;br /&gt;
===How can I get the Moodle app?===&lt;br /&gt;
You can download the Moodle App for free from [https://play.google.com/store/apps/details?id=com.moodle.moodlemobile Google Play] and the Apple [https://itunes.apple.com/app/moodle-mobile/id633359593?mt=8 App Store]. You will find it by searching “Moodle”, and the author/owner is “Moodle Pty Ltd”.&lt;br /&gt;
If you are unable to download the app from Google play, please visit [https://download.moodle.org/mobile/ Moodle app downloads]&lt;br /&gt;
===I can&#039;t get the app to work. ===&lt;br /&gt;
To ensure that the Moodle app functions properly, please double-check that you have correctly entered the URL address of the Moodle site you are using (please visit [https://docs.moodle.org/en/Moodle_app_FAQ#I_can%E2%80%99t_find_my_Moodle_site_in_the_app. I can’t find my Moodle site in the app]). If you are experiencing difficulties connecting to your site, please contact the person or team who takes care of Moodle in your school or learning organisation. Please note the app only works with Moodle sites that have been set up to allow it, and that are running on at least Moodle 3.5.&lt;br /&gt;
&lt;br /&gt;
===I can’t find my Moodle site in the app. ===&lt;br /&gt;
To find your Moodle site on the app login screen, try searching for the name of your school or learning organisation.&lt;br /&gt;
&lt;br /&gt;
If your school or organisation doesn’t appear in the search, you can try searching by your Moodle site URL address instead. If you don’t know the address of your Moodle site, here’s how you can find it:&lt;br /&gt;
# Open a web browser (like Chrome or Safari) and go to your school’s Moodle site login page.&lt;br /&gt;
# At the top of the page in the address bar, you&#039;ll see the URL address of your Moodle site, e.g. “campus.example.edu”. [[File:FAQ I cant find my site 1.png|alt=URL|thumb|none|&#039;&#039;campus.example.edu&#039;&#039;]]&lt;br /&gt;
# Copy the URL (don’t copy the /login nor what comes after), paste it into Your site in the app, then select Connect to your site. [[File:FAQ I cant find my site 2.png|alt=Adding an URL to the app|thumb|none|Adding an URL to the app]]&lt;br /&gt;
# Now you can log in to your site with your username and password.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you tried searching by URL address and still can’t find your Moodle site, please get in touch with the person who takes care of Moodle in your school or learning organisation.&lt;br /&gt;
===I can’t log in with the app===&lt;br /&gt;
To log in to your Moodle site using the app, you first need to connect to your school’s Moodle site (view [[I can’t find my Moodle site in the app]] if you can’t find your site).&lt;br /&gt;
&lt;br /&gt;
Once you’ve connected to your Moodle site, you should be able to log in with your usual username and password.&lt;br /&gt;
&lt;br /&gt;
If you forgot your username or password, select the option &#039;&#039;&#039;Forgotten your username or password?&#039;&#039;&#039;. If you still have trouble logging in or can’t see any options for retrieving your username or password, please get in touch with the person who takes care of Moodle in your school or learning organisation.&lt;br /&gt;
===I see an error message when I try to use the app===&lt;br /&gt;
If you see an error message that prevents you from using the app, please get in touch with the person who takes care of Moodle in your school or learning organisation. &lt;br /&gt;
&lt;br /&gt;
Some of the most common errors that your school or learning organisation will be able to fix are:&lt;br /&gt;
* Your token is expired or not valid.&lt;br /&gt;
* An error mentioning the parameter “includestealthmodules”.&lt;br /&gt;
* The web service function is not available.&lt;br /&gt;
* A message about site maintenance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you’re experiencing any of these errors, contact your school or learning organisation for help.&lt;br /&gt;
===What permissions does the app require?===&lt;br /&gt;
The app requires the following permissions:&lt;br /&gt;
* Record audio - for uploading to your Moodle site&lt;br /&gt;
* Read and modify the contents of your SD card - for content to be downloaded to your SD Card for offline access.&lt;br /&gt;
* Network access - to be able to connect with your Moodle site and check if you are connected, and if not to switch to offline mode.&lt;br /&gt;
* Run at startup - to receive local notifications even when the app is running in the background.&lt;br /&gt;
* Prevent phone from sleeping - to receive push notifications anytime.&lt;br /&gt;
===What are the minimum device requirements to use the Moodle app?===&lt;br /&gt;
Android devices: Require Android 7.0 or later. (Users with Android 5 and 6 can still use version 4.3, but they will not receive any new updates.)&lt;br /&gt;
&lt;br /&gt;
iOS devices (iPhones/iPads): Require iOS 13 or later. (Please note the app was only tested on versions iOS 14 and onward.)&lt;br /&gt;
&lt;br /&gt;
===I can&#039;t see my course on the app. What do I do?===&lt;br /&gt;
Check with your course tutor that you are correctly enrolled.&lt;br /&gt;
=== Why can&#039;t I upload my assignment on the app?===&lt;br /&gt;
If you’re experiencing any issue uploading assignment, please contact your school or learning organisation for help.&lt;br /&gt;
===Why can&#039;t I sometimes access the app or submit anything to it?===&lt;br /&gt;
This could be because of interruptions in your internet connection. Wait a while and try again. If you continue to have problems, contact your school or learning organisation for help.&lt;br /&gt;
===Is there a space limit on my files?===&lt;br /&gt;
Assignments will have a size limit which you can see, those are set by your teachers. For other space limit questions, check with your your school or learning organisation .&lt;br /&gt;
===When are activities completed offline synchronized?===&lt;br /&gt;
See [[Moodle app synchronization]].&lt;br /&gt;
===Why the site is asking for my username and password when an activity is opened in the browser?===&lt;br /&gt;
For security reasons, between auto-logins you must wait 6 minutes (this should not be a problem because most of the browsers will keep your Moodle session open).&lt;br /&gt;
In recent Moodle versions, the previous value can be configured in Site Administration &amp;gt; Mobile app authentication &amp;gt;  Minimum time between auto-login requests&lt;br /&gt;
&lt;br /&gt;
=== The Moodle app might seem slow (especially on Android devices) ===&lt;br /&gt;
If the app feels slow, it might be due to things outside the app itself. This can include:&lt;br /&gt;
* Slow internet connection&lt;br /&gt;
* Network problems&lt;br /&gt;
* The server responding slowly&lt;br /&gt;
* Content or settings not made for mobile&lt;br /&gt;
* Using the app on an old device&lt;br /&gt;
&lt;br /&gt;
We test the app carefully on many sites before each release, and we’re confident it usually works as well as or better than the website.&lt;br /&gt;
&lt;br /&gt;
To make sure your site works well on mobile, please check [[Creating mobile-friendly courses]]&lt;br /&gt;
&lt;br /&gt;
Finally, to troubleshoot this problem, we recommend trying the application with our demo site: https://school.moodledemo.net. Simply use the username &amp;quot;student&amp;quot; and the relevant password to access the site. If you find that the navigation and overall experience with the app are improved, then the issue may be at the server level. In this case, we suggest contacting your school or learning organisation for further assistance.&lt;br /&gt;
&lt;br /&gt;
=== The Moodle app restarts/ closes / reopenes itself ===&lt;br /&gt;
This is likely because there are too many apps opened on your mobile device. Mobile devices have a finite amount of memory, and the device&#039;s memory manager is responsible for determining which applications to keep open and which to close.&lt;br /&gt;
To optimise your device&#039;s performance, we recommend closing all applications that are not currently in use. This will free up valuable memory and ensure that your device runs smoothly.&lt;br /&gt;
===I use LineageOS and I&#039;m having problems using the app===&lt;br /&gt;
LineageOS uses a different WebView implementation not compatible vith the app. You need to install &amp;quot;Android System WebView&amp;quot; from Google Play (or via a trusted apk) and enabling it via Settings &amp;gt; Developer options &amp;gt; WebView implementation.&lt;br /&gt;
===H5P packages and external content embedded via iframes are not working on iOS ===&lt;br /&gt;
This is caused by a new feature of iOS 14 called ITP that blocks cookies for external sites embedded in the app (the H5P content is played embedded in an iframe pointing to the Moodle website) unless the user enables a setting in the app to allow those cookies.&lt;br /&gt;
&lt;br /&gt;
The quick workaround is to enable the setting &amp;quot;Allow Cross-Website Tracking&amp;quot; available via the Settings app (look for the Moodle app, at the bottom) on your iPhone/iPad with iOS 14.&lt;br /&gt;
===I cannot reproduce audio that was recorded on browser on iOS devices (iPhones and iPads)===&lt;br /&gt;
This behaviour is related to this Moodle LMS bug: https://tracker.moodle.org/browse/MDL-80114&lt;br /&gt;
&lt;br /&gt;
=== I don&#039;t receive calendar notifications (reminders) when using Android 12 or above === &lt;br /&gt;
&lt;br /&gt;
In order to receive calendar notifications you need to allow alarms and reminders for the Moodle app. To do this:&lt;br /&gt;
* Open Android Settings and go to the Moodle app settings. Another way to reach these settings is by long-clicking the Moodle app icon and pressing &amp;quot;App info&amp;quot;.&lt;br /&gt;
* Make sure that Notifications are enabled.&lt;br /&gt;
* If you see a section called &amp;quot;Alarms &amp;amp; reminders&amp;quot;, make sure it is Allowed (this setting is disabled by default in Android 14+).&lt;br /&gt;
&lt;br /&gt;
==Teachers==&lt;br /&gt;
===How can I enable videos in my course to be downloaded?===&lt;br /&gt;
See the section &#039;Media download for offline usage&#039; in [[Creating Moodle-app-friendly courses]].&lt;br /&gt;
===Which course format is it best to use?===&lt;br /&gt;
Topics or weekly course format is best suited to mobile devices.&lt;br /&gt;
===How do I make YouTube links open automatically in the app?===&lt;br /&gt;
Add YouTube links as a [[URL resource]].&lt;br /&gt;
===Why can&#039;t my students see their courses?===&lt;br /&gt;
If you or an administrator have correctly enrolled them in a course, they can see it in their mobile app. If they are correctly enrolled but can still not see their course, ask them to check with your Moodle site administrator.&lt;br /&gt;
=== I can&#039;t mark assignments in the app===&lt;br /&gt;
If you are experiencing problems when grading, please review that you are using the correct decimal separators (if the app interface is in English, you must use a period).&lt;br /&gt;
===What communications tools can I use in the app to engage with my learners?===&lt;br /&gt;
See [[Mobile app notifications]]. Chat, forums and messaging are all supported by the app.&lt;br /&gt;
===My Vimeo videos are not playing in the app===&lt;br /&gt;
In older versions of Moodle (pre-Moodle 3.7), it may be necessary to activate the &amp;quot;Allow frame embedding&amp;quot; admin setting. However, for those using Moodle version 3.7 or later, it is important to check whether a Proxy/Firewall/Web Server security module is setting the X-Frame-Options header in your HTTP request responses. If this is the case, it is recommended to deactivate this feature as it may cause conflicts, as Moodle already sets this header by default. &lt;br /&gt;
&lt;br /&gt;
This setting is typically found in any of these configuration files .htaccess, httpd.conf or VirtualHost. To disable it, you can just use: Header always unset X-Frame-Options &lt;br /&gt;
&lt;br /&gt;
You may also use Bootstrap responsive classes: https://getbootstrap.com/docs/4.0/utilities/embed/, for example, &amp;lt;div class=&amp;quot;embed-responsive&amp;quot;&amp;gt;&lt;br /&gt;
For older versions, see this forum discussion with a workaround: https://moodle.org/mod/forum/discuss.php?d=327342&lt;br /&gt;
&lt;br /&gt;
If the issue is with vimeo videos on Moodle sites 3.10 or 3.11, please update the Moodle site to the latest version possible (at least 3.10.10 or 3.11.6). (See https://tracker.moodle.org/browse/MDL-74042)&lt;br /&gt;
===ReCaptcha doesn&#039;t work on my site===&lt;br /&gt;
In older versions of Moodle (pre-Moodle 3.7), it may be necessary to activate the &amp;quot;Allow frame embedding&amp;quot; admin setting. However, for those using Moodle version 3.7 or later, it is important to check whether a Proxy/Firewall/Web Server security module is setting the X-Frame-Options header in your HTTP request responses. If this is the case, it is recommended to deactivate this feature as it may cause conflicts, as Moodle already sets this header by default. &lt;br /&gt;
===H5P packages don&#039;t work on my site===&lt;br /&gt;
In older versions of Moodle (pre-Moodle 3.7), it may be necessary to activate the &amp;quot;Allow frame embedding&amp;quot; admin setting. However, for those using Moodle version 3.7 or later, it is important to check whether a Proxy/Firewall/Web Server security module is setting the X-Frame-Options header in your HTTP request responses. If this is the case, it is recommended to deactivate this feature as it may cause conflicts, as Moodle already sets this header by default. &lt;br /&gt;
&lt;br /&gt;
This setting is typically found in any of these configuration files .htaccess, httpd.conf or VirtualHost. To disable it, you can just use: Header always unset X-Frame-Options &lt;br /&gt;
&lt;br /&gt;
This can also happen when you are using the non-official H5P plugin (mod_hvp), in that case you will see the following message: This site is not configured properly for displaying mobile H5P content. Please contact a site administrator so they can apply the above suggested configuration changes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cookies issues&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If your site uses HTTPS please ensure that the &amp;quot;Secure cookies only&amp;quot; (cookiesecure) setting under Site administration &amp;gt; HTTP security is enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency errors&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the following error appears &amp;quot;Missing dependency H5P.Editor. something X required by H5P.Editor. something Y&amp;quot;. H5P packages need to include all the libraries (dependencies) they use so the package is self-contained. But sometimes packages might be missing at least one dependency.&lt;br /&gt;
&lt;br /&gt;
In order to fix this, you could do the following:&lt;br /&gt;
&lt;br /&gt;
Open Moodle’s Content Bank (from the link in the problematic H5P settings page) and upload your H5P package there, once uploaded, you will see the H5P package and an “Edit” button, click on that button so the editor opens, scroll down and click “Save”.&lt;br /&gt;
Now, you can replace the problematic H5P with this new one, for this, you can just include it from the Content bank by opening the activity settings page and the file picker.&lt;br /&gt;
=== I use a Moodle plugin but the app says it is not supported ===&lt;br /&gt;
You should contact the plugin developer and point him to this documentation: https://docs.moodle.org/dev/Moodle_Mobile_Remote_addons where it is explained how to add support to plugins in the Mobile app.&lt;br /&gt;
&lt;br /&gt;
There is a list of Moodle plugins supported by the app here: https://moodle.org/plugins/browse.php?list=award&amp;amp;id=6&lt;br /&gt;
=== I have problems playing SCORM packages ===&lt;br /&gt;
This might be caused because:&lt;br /&gt;
* The SCORM was added using an advanced option (remote imsmanifest.xml packages or file system repository unzipped SCORMS)&lt;br /&gt;
* The SCORM ZIP file was created using a tool that does not create standardised ZIP files (for example, zip files containing the inverted path separator &amp;quot;\&amp;quot; will not work on Android)&lt;br /&gt;
Please refer to [[Moodle app SCORM player]] for additional information.&lt;br /&gt;
=== My quizzes or lessons are not working offline ===&lt;br /&gt;
You need to edit the quiz or lesson activity settings and enable the &amp;quot;Allow lesson/quiz to be attempted offline using the mobile app&amp;quot; configuration option.&lt;br /&gt;
=== Maths notation is not displaying correctly in the app ===&lt;br /&gt;
If you are having issues with MathJax, please enable the [[TeX notation filter]] also.&lt;br /&gt;
&lt;br /&gt;
If you have both filters enabled, please leave MathJax above TeX so it is always processed before TeX.&lt;br /&gt;
&lt;br /&gt;
If the issue persists, we suggest disabling the &#039;Remove HTML tags from all activity names&#039; (&#039;&#039;formatstringstriptags&#039;&#039;) option in &#039;&#039;Site Administration&#039;&#039; &amp;gt; &#039;&#039;Appearance&#039;&#039; &amp;gt; &#039;&#039;HTML settings&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== How can I disable text selection / copy in the app? ===&lt;br /&gt;
You can create a remote theme and add some custom CSS rules to disable it, see https://docs.moodle.org/dev/Moodle_Mobile_Themes&lt;br /&gt;
=== My images, videos or audios stop working after the first time ===&lt;br /&gt;
Please make sure the URL you&#039;re using on the media file doesn&#039;t have any redirect (e.g. http to https), always try to use the final URL. There&#039;s a bug in the library we use to download those files, it doesn&#039;t work when downloading files with redirects. We have plans to remove that library from the app, but since then please always try to use URLs without redirects.&lt;br /&gt;
&lt;br /&gt;
==Administrators==&lt;br /&gt;
=== What plans are available for the Moodle app? ===&lt;br /&gt;
There are three main plans available for the Moodle app: Free, Pro, and Premium, each offering different features and benefits. In addition to the three main plans, there is also a Branded Moodle App (BMA) option. The BMA is a custom-built app that is branded to your organization. Learn more in [[Moodle app plans]].&lt;br /&gt;
=== How can I have my site listed in the Moodle app site finder? ===&lt;br /&gt;
Please refer to our [[Moodle app guide for admins]] for instructions.&lt;br /&gt;
=== How can I debug errors in the app? ===&lt;br /&gt;
Go to the More tab and then to Settings &amp;gt; General. Enable &amp;quot;Display debug messages&amp;quot;. This will show an explanatory message when an error occurs, alternatively, you can do a full debugging via: https://docs.moodle.org/dev/Moodle_Mobile_debugging_WS_requests&lt;br /&gt;
&lt;br /&gt;
=== How can I disable features in the app? ===&lt;br /&gt;
Please go to &#039;&#039;Site administration &amp;gt; Mobile features &amp;gt; Disabled features&#039;&#039; and select all the features you want to disable.&lt;br /&gt;
&lt;br /&gt;
To select multiple features you will have to use Ctrl (Cmd in Mac) + Click&lt;br /&gt;
&lt;br /&gt;
=== How can I add custom menu items in the app? ===&lt;br /&gt;
You can add custom additional menu items in the &amp;quot;more&amp;quot; menu of the app, the one represented by three consecutive dots.&lt;br /&gt;
&lt;br /&gt;
Please go to &#039;&#039;Site administration &amp;gt; Mobile features &amp;gt; Custom menu items&#039;&#039; and follow the instructions in [[Moodle_app_guide_for_admins#Custom_menu_items|Moodle app guide for admins]] for the correct format to use.&lt;br /&gt;
&lt;br /&gt;
As a quick example:&lt;br /&gt;
  Academy information|https://yoursite.com/mod/page/view.php?id=X |app|en|home&lt;br /&gt;
&lt;br /&gt;
=== How can I customise the language strings in the app? ===&lt;br /&gt;
&lt;br /&gt;
Please go to &#039;&#039;Site administration &amp;gt; Mobile features &amp;gt; Custom language strings&#039;&#039; and follow the instructions in [[Moodle_app_guide_for_admins#Custom_language_strings|Moodle app guide for admins]] for the format to use.&lt;br /&gt;
&lt;br /&gt;
As a quick example:&lt;br /&gt;
 core.user.student|Learner|en&lt;br /&gt;
 core.user.student|Aprendiz|es&lt;br /&gt;
&lt;br /&gt;
=== I can connect with my iPhone (or iPad) but not with my Android phone ===&lt;br /&gt;
This usually happens when the site is using https and the certificate is not correctly configured or it is using an old protocol, please use these pages to check this certificate: https://www.sslshopper.com/ssl-checker.html, https://www.geocerts.com/ssl_checker, and https://www.ssllabs.com/ssltest/analyze.html&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The certificate of this site cannot be trusted by your device: TLS connection could not be established: javax.net.ssl.SSLHandshakeException&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This error could be caused because in any of the certification paths there is a certificate using SHA-1. Starting Android 10 this is not allowed, more information here: https://developer.android.com/privacy-and-security/security-ssl&lt;br /&gt;
&lt;br /&gt;
You could easily check the previous using https://www.ssllabs.com/ssltest/analyze.html and going to the Certification Paths -&amp;gt; Android section, if there is any mention to SHA-1 this could be the cause. You will need to upgrade your certificates to avoid using SHA-1.&lt;br /&gt;
&lt;br /&gt;
=== My certificate is fine but I still can&#039;t connect ===&lt;br /&gt;
This is usually a server configuration problem caused by any of the following server configuration issues:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Access to XMLHttpRequest at &#039;https://yoursite/webservice/rest/server.php?moodlewsrestformat=json&amp;lt;nowiki/&amp;gt;...&#039; from origin &#039;&amp;lt;nowiki&amp;gt;http://localhost&#039;&amp;lt;/nowiki&amp;gt; has been blocked by CORS policy: No &#039;Access-Control-Allow-Origin&#039; header is present on the requested resource.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is because a Proxy/Firewall/Web Server security module is removing automatically the Access-Control-Allow-Origin: * header that Moodle sets to allow Web Service requests. &lt;br /&gt;
&lt;br /&gt;
It is totally secure to remove that Proxy/Firewall/Web Server rule/configuration because that header is only set by Moodle when needed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;access-control-allow-origin cannot contain more than one origin&amp;quot;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
iOS and Android apps do not allow the following header to contain more than one item: &amp;quot;Access-Control-Allow-Origin&amp;quot;. For example, a header like this: Access-Control-Allow-Origin: *, https://mydomain.com will cause problems.&lt;br /&gt;
&lt;br /&gt;
This HTTP header is not valid, according to the specification you can only specify a domain or a &amp;quot;*&amp;quot;:&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin&lt;br /&gt;
&lt;br /&gt;
Please, review if you have a Proxy/Firewall/Web Server adding automatically values to that HTTP header.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Security rules are blocking requests using the Accept-Charset header&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some security rules, such as OWASP ModSecurity, are blocking requests with this header that is sent by the Moodle App. In future releases of the app, this problem will be fixed. But in the meantime, you should disable it. Find more about this in MOBILE-4342.&lt;br /&gt;
=== My certificate is fine but the Moodle app is detecting http instead of https ===&lt;br /&gt;
If the Moodle app is detecting http instead of https, please revise config.php (check &amp;quot;wwwroot&amp;quot; as well as &amp;quot;httpswwwroot&amp;quot;)&lt;br /&gt;
===After updating Moodle LMS to a recent version my users cannot login===&lt;br /&gt;
This only applies to sites that are configured to use log in via an embedded browser pointing to their Moodle site.&lt;br /&gt;
This behaviour could be related to this Moodle LMS issue: https://tracker.moodle.org/browse/MDL-81897.&lt;br /&gt;
There are several ways to fix this issue:&lt;br /&gt;
# Upgrade their Moodle site to any of the indicated version in the issue that will solve the problem&lt;br /&gt;
# Manually apply the patch here: https://github.com/jleyva/moodle/compare/462d5f04a8...MDL-81897-master&lt;br /&gt;
# Immediate workaround: Change the app authentication so it will launch in a separate browser, by going to Site admin &amp;gt; Mobile app authentication &amp;gt; Type of login (and select the option that mentions external/system browser), remember to Save Changes&lt;br /&gt;
We’d recommend doing 3) that will immediately address the issue that is affecting new logins.&lt;br /&gt;
===I can&#039;t get the app to work. What can I do?===&lt;br /&gt;
Assuming you have enabled mobile services on your site, please check:&lt;br /&gt;
# If your site uses an SSL certificate, it must be a trusted certificate, not self-signed. Please use these tools or a similar one to check that your certificate is valid: [https://www.sslshopper.com/ssl-checker.html SSL Checker], [https://www.geocerts.com/ssl_checker SSL Checker], and [https://www.ssllabs.com/ssltest/analyze.html SSL Server Test]. All the checks must be ok, including the &amp;quot;Certificate Chain Complete&amp;quot;. Otherwise the app might work on iOS but not on Android.&lt;br /&gt;
# Make sure that the &amp;quot;Access-Control-Allow-Origin&amp;quot; header only contains one item. For example, a header like this: Access-Control-Allow-Origin: *, &amp;lt;nowiki&amp;gt;https://mydomain.com&amp;lt;/nowiki&amp;gt; will cause problems.&lt;br /&gt;
# [[Debugging]] is disabled (in &#039;&#039;Site administration &amp;gt; Development &amp;gt; Debugging&#039;&#039;)&lt;br /&gt;
# The ADOdb debug option is disabled if you are using the external database auth or enrolment plugin (in &#039;&#039;Plugins &amp;gt; Authentication &amp;gt; External database&#039;&#039; and in &#039;&#039;Plugins &amp;gt; Enrolment &amp;gt; External database&#039;&#039;).&lt;br /&gt;
# SHA-1 https certificates are not supported anymore in Chrome, this means that the Android version of the app won&#039;t work for your site. If your site doesn&#039;t work in desktop Chrome or Chromium it won&#039;t work in the Android app. See https://blog.chromium.org/2014/09/gradually-sunsetting-sha-1.html for more information&lt;br /&gt;
# If you are using IIS check that Anonymous access is not disabled for the /webservice directory.&lt;br /&gt;
# If you are using a web application firewall like AWS WAF, StackPath, Barracuda, Cloudflare, Juniper, etc... try to temporary disable it to check if that&#039;s the cause. If so, you&#039;ll have to whitelist these endpoints: login/token.php, webservice/*, lib/ajax/*, media/player/vimeo/wsplayer.php and /tokenpluginfile.php&lt;br /&gt;
You can also add WAF rules to allow traffic by detecting the app user agent such as: (http.user_agent contains &amp;quot;MoodleMobile&amp;quot;)&lt;br /&gt;
If you still have a problem, please post in the [https://moodle.org/mod/forum/view.php?id=7798 Moodle for mobile forum].&lt;br /&gt;
&lt;br /&gt;
If the issue started after updating Moodle LMS please visit [[After updating Moodle LMS to a recent version my users cannot login]].&lt;br /&gt;
&lt;br /&gt;
=== I cannot access with old users, but I can with recently created ones! ===&lt;br /&gt;
Please, do a &amp;quot;Purge all caches&amp;quot; via the Moodle administration settings, this will solve the problem.&lt;br /&gt;
===I can&#039;t view the courses tab as an administrator===&lt;br /&gt;
The Moodle app only displays courses you are enrolled in. If you want to view a course as an admin, you need to enrol in it.&lt;br /&gt;
===My Moodle site uses a SSO auth method (Shibboleth, CAS, Google OAuth, etc) and the app is not working===&lt;br /&gt;
See the section &#039;Mobile authentication&#039; in the [[Moodle app guide for admins]] for details of how to configure it.&lt;br /&gt;
&lt;br /&gt;
If configured the app is still not connecting: If your site uses an SSL certificate, it must be a trusted certificate, not self-signed. Please use this tool or a similar one to check that your certificate is fine: [https://www.geocerts.com/ssl_checker SSL Checker]. All the checks must be OK, including the &amp;quot;Certificate Chain Complete&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If your SSO method is unable to authenticate when using an &amp;quot;embedded browser&amp;quot; (it gives an authentication error), please check if it works with a &amp;quot;browser window&amp;quot;. If it does work with the browser window then it means your SSO is performing an HTTP redirect, and these kind of redirects aren&#039;t supported by the app (the request is redirected by the browser not passing the POST parameters). Unfortunately, this is something we cannot control in the Mobile app (it can&#039;t be handled via JavaScript). For further information, see http://stackoverflow.com/questions/228225/prevent-redirection-of-xmlhttprequest and http://stackoverflow.com/questions/4168784/ajax-redirection-handling&lt;br /&gt;
&lt;br /&gt;
There are only 2 possible solutions: set the authentication via a &amp;quot;browser window&amp;quot; instead of an embedded one (please notice this won&#039;t work in the Linux desktop app), or remove the redirect from the SSO auth method.&lt;br /&gt;
===SSO is not working with my custom auth plugin===&lt;br /&gt;
SSO should work in any plugin if the plugin handles correctly the $SESSION-&amp;gt;wantsurl, this is the way SSO works when it is launched via the app:&lt;br /&gt;
* It launchs this URL https://yourmoodle/admin/tool/mobile/launch.php?service=local_mobile&amp;amp;passport=abc in the device browser &lt;br /&gt;
* If the user is not logged in, the browser will redirect the user to the login page&lt;br /&gt;
* If the auth plugin used implements correctly the handling of the wantsurl session var, once the user has logged in, the browser should redirect back to the https://yourmoodle/admin/tool/mobile/launch.php?service=local_mobile&amp;amp;passport=abc URL that will launch the mobile app via the custom URL protocol&lt;br /&gt;
Custom auth plugins may be failing in the last step,not redirecting back to tool/mobile, this will happen only if the plugin does not support correctly the $SESSION-&amp;gt;wantsurl.&lt;br /&gt;
&lt;br /&gt;
The SAML plugin works correctly but some modifications of that plugin may not work if important lines are changed.&lt;br /&gt;
===I am having problems requesting an airnotifier access key===&lt;br /&gt;
If you have registered your site but are still unable to request an access key, please register your site on the Moodle Apps Portal https://apps.moodle.com once your site is registered there, an Airnotifier access key will be automatically generated for you.&lt;br /&gt;
=== Push notifications are not working ===&lt;br /&gt;
Please check [[Mobile app notifications#Troubleshooting]]&lt;br /&gt;
=== How notifications icon badges are updated ===&lt;br /&gt;
&#039;&#039;&#039;Android&#039;&#039;&#039;: Not all Android devices support icon badges so in some cases badges will never display numbers, also, depending on the device only a badge indicating that there are new notifications will be displayed when receiving a Push notification when the app is not in the foreground.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;iOS&#039;&#039;&#039;: The icon badge counter is only updated when the app is open and it will reflect the number of notifications pending reading or the number of message senders that sent you a message you have not read yet&lt;br /&gt;
&lt;br /&gt;
In general, for iOS the icon badge displayed number should match the one displayed at the bottom of the app (or it should be the sum of the notifications and messages badges) and is not an indicator of the number of Push notifications the user has received, it acts as a reminder of pending notifications to be read that only gets updated when the user open the apps&lt;br /&gt;
&lt;br /&gt;
There is an open issue to improve the behaviour on iOS, please watch MDL-73707&lt;br /&gt;
=== I configured &#039;QR code access&#039; to automatic login, but the app still asks for credentials  ===&lt;br /&gt;
Automatic authentication only works for Pro and Premium sites. You can see the app plans [https://moodle.com/app/ in this site].&lt;br /&gt;
&lt;br /&gt;
If you&#039;re getting an error saying that the device you&#039;re using to connect isn&#039;t in the same network as the device that displays the QR code but both devices are connected to the same network, please check the section: [[#ipmismatch:_.27Client_IP_address_mismatch.27|ipmissmatch: &#039;Client IP address mismatch&#039;]].&lt;br /&gt;
&lt;br /&gt;
=== I can log in on my Moodle site but I see a blank page or the app styles broken ===&lt;br /&gt;
This is usually because your Moodle site has a customised CSS. &lt;br /&gt;
&lt;br /&gt;
Please try leaving empty CSS (&#039;&#039;mobilecssurl&#039;&#039;) on Site administration &amp;gt; Mobile app &amp;gt; Mobile appearance. If that works, please read [https://docs.moodle.org/dev/Moodle_App_Remote_Themes Moodle App Remote Themes] and create a new CSS file using the variables mentioned there&lt;br /&gt;
&lt;br /&gt;
===The Moodle app does not connect to MoodleBox (or other internal self-hosted systems)===&lt;br /&gt;
You will need to disable SSL to make the app works, please see this forum discussion for more information: https://moodle.org/mod/forum/discuss.php?d=424353#p1739474&lt;br /&gt;
===I think I found a bug with the app. Where can I report it?===&lt;br /&gt;
# Log in to the [https://tracker.moodle.org/browse/MOBILE Moodle Mobile tracker] (you&#039;ll need to [http://tracker.moodle.org/secure/Signup%21default.jspa create a tracker account] if you&#039;ve not done so previously)&lt;br /&gt;
# Check whether the issue has already been reported by doing a [https://tracker.moodle.org/issues/?jql=project%20%3D%20MOBILE search]&lt;br /&gt;
# If not, report the bug by clicking the &#039;Create Issue&#039; link at the top right of the page, selecting &#039;Moodle app&#039; as the project&lt;br /&gt;
# Add a detailed description providing as much information as possible (Moodle version, app version, device model and operating system, etc...), then click the Create button&lt;br /&gt;
===How can I get the app in my language?===&lt;br /&gt;
[[File:setting the app lang.png|thumb|100px|Setting your language]]&lt;br /&gt;
The Moodle app automatically detects your mobile&#039;s language and displays in the same language (if the translation exists). Otherwise, you can set the app language in App settings &amp;gt; General.&lt;br /&gt;
&lt;br /&gt;
See also a post explaining how multi-lang works in the Moodle app: [https://moodle.org/mod/forum/discuss.php?d=453445#p1825637 Re: Language selector missing in Moodle app]&lt;br /&gt;
&lt;br /&gt;
If the Moodle app is not yet available in your language, please contribute a translation! See [https://docs.moodle.org/dev/Translating%20Moodle%20Mobile Translating Moodle Mobile] for details of what to do.&lt;br /&gt;
&lt;br /&gt;
=== Changes made to a Moodle site URL can cause logged-in users’ data to fail when synchronising. ===&lt;br /&gt;
We recommend that administrators manually log out all users after a site rename. If your site URL changes and have site users that are using the mobile Moodle App we suggest the following:&lt;br /&gt;
* For users that have not yet logged in - we recommend sending them the new URL&lt;br /&gt;
*   For users already using the mobile Moodle App and potentially logged in request them to:&lt;br /&gt;
** log out of the mobile Moodle App,&lt;br /&gt;
** delete the old site, and&lt;br /&gt;
** log in using the new URL&lt;br /&gt;
Logged in Moodle users can continue working with the previous URL (with cached information) but they will not be able to synchronise the new information (therefore not receiving new information from their teachers, and teachers not receiving data or submissions from those students).&lt;br /&gt;
* To avoid the risk of data not synchronising, we recommend the site administrator logs out all app users, by manually deleting their tokens:&lt;br /&gt;
** Go to Site administration&lt;br /&gt;
** Click Server &lt;br /&gt;
** Click Web services &lt;br /&gt;
** Click Manage tokens &lt;br /&gt;
** Delete the tokens&lt;br /&gt;
Take into account that you still need to request your users to log in using the new URL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Embedded content is not working ===&lt;br /&gt;
&lt;br /&gt;
This could be caused because your site is using a Content-Security-Policy that is preventing the app from embedding content.&lt;br /&gt;
&lt;br /&gt;
You can easily detect this when an error like this is displayed (javascript console): Refused to load URL because it does not appear in the frame-ancestors directive of the Content Security Policy.&lt;br /&gt;
&lt;br /&gt;
If that&#039;s the case, you&#039;d need to add the following elements: http://localhost moodleappfs://localhost at the end of the &amp;quot;Content-Security-Policy&amp;quot; HTTP header:&lt;br /&gt;
&lt;br /&gt;
An example of a CSP allowing embedding Vimeo videos in the site and content in the app:&lt;br /&gt;
Content-Security-Policy: frame-ancestors &#039;self&#039; https://*.vimeocdn.com https://*.vimeows.com https://*.vimeo.com http://localhost moodleappfs://localhost ;&lt;br /&gt;
&lt;br /&gt;
Other type of embedded content that does not work is content hosted by Microsoft tools that require session or any type of authentication, such as SharePoint content.&lt;br /&gt;
&lt;br /&gt;
=== Some activities are displayed incorrectly (blank, just a vertical line, ..) on the app ===&lt;br /&gt;
Please visit the forum post [[https://moodle.org/mod/forum/discuss.php?d=461909#p1854918| Some lesson activities do not display at all]].&lt;br /&gt;
&lt;br /&gt;
==Error messages==&lt;br /&gt;
=== &#039;Coding error: version.php file is missing for the component&#039; ===&lt;br /&gt;
This error message indicates that that plugin is not correctly installed (or uninstalled) on the Moodle site you use (see [[Installing plugins]]). Please review the mod/certificate folder to check if the version.php file is missing (or has incorrect permissions) as well as purge cache too.&lt;br /&gt;
=== &#039;Can not find data record in database table external_functions&#039; ===&lt;br /&gt;
This error usually happens due to a bad configuration or setting value in your Moodle site, please check:&lt;br /&gt;
# The user quota global setting should be an integer. For more details, see the discussion [https://moodle.org/mod/forum/discuss.php?d=320873 How to enable Moodle Mobile App for all accounts].&lt;br /&gt;
# The &#039;&#039;usermaxuploadfilesize&#039;&#039; should be an integer, please try to decrease the size. It can be configured in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; Site Policies &amp;gt; Maximum uploaded file size&#039;&#039;. The default value (Site upload limit) depends on the PHP configuration, you might have to change the value of &#039;&#039;upload_max_filesize&#039;&#039; and &#039;&#039;post_max_size&#039;&#039; in your &#039;&#039;php.ini&#039;&#039; file.&lt;br /&gt;
# The user &amp;quot;lang&amp;quot; field in the database is set to a correct value and existing language installed in the site. Some times the lang field is set via external systems to incorrect values or pointing to a language pack that was uninstalled. Please, note that to fix this you need direct access to the database and your &#039;user&#039; and &#039;course&#039; table.&lt;br /&gt;
===&#039;Cannot connect: Verify that you have typed correctly the URL and that your site uses Moodle 3.5 or later&#039;===&lt;br /&gt;
Take into account that the app will only connect to Moodle LMS sites version 3.5 onward.&lt;br /&gt;
Please also check:&lt;br /&gt;
# Mobile services are enabled for the site.&lt;br /&gt;
# The user is entering the correct URL for the site (see FAQ above)&lt;br /&gt;
# For https sites, the certificate is valid (see FAQ above)&lt;br /&gt;
===&#039;Invalid Moodle site version. The Moodle app only supports Moodle systems 3.5 onwards&#039;===&lt;br /&gt;
The app will only connect to Moodle LMS sites version 3.5 onward (see [https://docs.moodle.org/35/en/Upgrading Upgrade to 3.5] as well as [[Upgrade overview]]).&lt;br /&gt;
===&#039;We lost connection; you need to reconnect. Your token is now invalid.&#039; on my custom version of the Moodle app ===&lt;br /&gt;
Please check:&lt;br /&gt;
# You have followed all the steps listed in [https://docs.moodle.org/dev/Moodle%20Mobile%20Developing%20a%20plugin%20tutorial Moodle Mobile Developing a plugin tutorial]&lt;br /&gt;
# You have enabled the [[Capabilities/moodle/webservice:createtoken|moodle/webservice:createtoken]] for the authenticated user&lt;br /&gt;
===&#039;No permission to create web service token for the service local_mobile&#039; when attempting to log in (any user that it is not an admin)===&lt;br /&gt;
Please check you have enabled the moodle/webservice:createtoken for the authenticated user or any global role you want to allow to use the mobile app&lt;br /&gt;
===&#039;No permission to create web service token for the service local_mobile&#039; when attempting to log in as an admin===&lt;br /&gt;
You need to create a token for the admin account (only) as follows:&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Web services &amp;gt; Manage tokens&#039;&#039;&lt;br /&gt;
# Click Add&lt;br /&gt;
# Enter the admin username and select &#039;Moodle app additional features service&#039; (i.e. do NOT leave it as &#039;Moodle app web service&#039;)&lt;br /&gt;
# Click the &#039;Save changes&#039; button.&lt;br /&gt;
===&#039;Invalid response value detected&#039; when accessing the site ===&lt;br /&gt;
The user quota global setting should be an integer. For more details, see the discussion [https://moodle.org/mod/forum/discuss.php?d=320873 How to enable Moodle Mobile App for all accounts].&lt;br /&gt;
=== &#039; Invalid response value detected: Invalid external api response: the value is &amp;quot;&amp;quot;, the server was expecting &amp;quot;raw&amp;quot; type&amp;quot; ===&lt;br /&gt;
This usually happens when there is a field with value NULL in a table in the database that should not be there. This may happen if your Moodle has been upgraded over many years and the database schema is broken.&lt;br /&gt;
&lt;br /&gt;
To fix it, you can do the following: &lt;br /&gt;
* Detect the field that is causing the problem (it should be indicated before the error message)&lt;br /&gt;
* Fix the field, for example, for the password field in the lesson table: UPDATE mdl_lesson SET password = &#039;&#039; WHERE password IS NULL (remember that your table prefix can be different than mdl_)&lt;br /&gt;
===&#039;Invalid response value detected&#039; when accessing My Courses or Course Overview ===&lt;br /&gt;
This usually happens when a course uses a language that isn&#039;t installed in the site. Please make sure that all courses use valid languages. This can be easily checked in the database, table &amp;quot;course&amp;quot;, there is a column named &amp;quot;lang&amp;quot;.&lt;br /&gt;
===&#039;A required parameter (username) was missing&#039;===&lt;br /&gt;
This may happen if your site implements HTTP redirects; the request is redirected by the browser not passing the POST parameters.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, this is something we cannot control in the Mobile app (it can&#039;t be handled via JavaScript). For further information, see http://stackoverflow.com/questions/228225/prevent-redirection-of-xmlhttprequest and http://stackoverflow.com/questions/4168784/ajax-redirection-handling&lt;br /&gt;
&lt;br /&gt;
The solution is to change the HTTP redirect and use an HTML page with a meta tag or JavaScript redirect.&lt;br /&gt;
===&#039;Cannot get course contents&#039;===&lt;br /&gt;
This usually happens when the course is using a course format plugin that was uninstalled from the server or that was not properly installed.&lt;br /&gt;
&lt;br /&gt;
Please, reinstall again the course format plugin.&lt;br /&gt;
===&#039;Access control exception&#039; or &#039;Your authentication token is invalid or has expired&#039;===&lt;br /&gt;
Please double-check that &#039;Enable web services for mobile devices&#039; (&#039;&#039;enablemobilewebservice&#039;&#039;) is actually enabled. (It might be unabled if for example you have reseted some roles.)&lt;br /&gt;
&lt;br /&gt;
If this error appears as soon as you enter the username and password for a new site, then it probably means that the token expiration time is badly configured. This is how to fix it:&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Security &amp;gt; Site security settings&#039;&#039;.&lt;br /&gt;
# Find the setting named &#039;&#039;User created token duration&#039;&#039;.&lt;br /&gt;
# If the value is set to 0 or it&#039;s too low, please set it back to a valid value (the default value is 12 weeks).&lt;br /&gt;
# Click the &#039;Save changes&#039; button.&lt;br /&gt;
&lt;br /&gt;
===ipmismatch: &#039;Client IP address mismatch&#039;===&lt;br /&gt;
This error can appear when a user opens your site in a browser while using the app. This happens if your site is behind a proxy and you&#039;re using one of these Moodle versions o higher: 3.5.11, 3.6.9, 3.7.5, 3.8.2, 3.9.0.&lt;br /&gt;
&lt;br /&gt;
To fix it:&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Administration &amp;gt; Server &amp;gt; HTTP&#039;&#039;.&lt;br /&gt;
# Find the setting named &#039;&#039;Ignore reverse proxies&#039;&#039; (reverseproxyignore).&lt;br /&gt;
# Enter the IP of your proxy (or range of IPs).&lt;br /&gt;
# Click the &#039;Save changes&#039; button.&lt;br /&gt;
If you are still experiencing issues please try to change this setting &amp;quot;getremoteaddrconf&amp;quot; (Logged IP address source) to the different existing values.&lt;br /&gt;
&lt;br /&gt;
Finally, it is possible to disable the IP restriction checks for functionality such as the QR login, to do that, go to Site administration &amp;gt; Mobile app &amp;gt; Mobile app authentication, and disable the &amp;quot;QR authentication same IP check&amp;quot; setting.&lt;br /&gt;
=== &#039;The param &amp;quot;includestealthmodules&amp;quot; is invalid&#039; ===&lt;br /&gt;
Please contact your learning organisation so they upgrade to at least Moodle 3.5.3 (see [https://docs.moodle.org/35/en/Upgrading Upgrade to 3.5] as well as [[Upgrade overview]]) or they manually apply the patch listed here [[MDL-63542]].&lt;br /&gt;
&lt;br /&gt;
==Older versions of the Moodle app==&lt;br /&gt;
We always recommend using the last version of the Moodle App but some times users are still using older versions this is the reason we are keeping this list:&lt;br /&gt;
&lt;br /&gt;
=== Some users are asked to reauthenticate too often when they browse the site (Moodle App &amp;lt;3.9.3) ===&lt;br /&gt;
This can happen if the app is sending too many variables to a WebService, e.g. because a course has a large number of sections and/or activities. This error was fixed in the 3.9.3 version of the app, but if you are using an older version of the app you can increase the value of &#039;&#039;max_input_vars&#039;&#039; in &#039;&#039;php.ini&#039;&#039; to fix it in your server.&lt;br /&gt;
&lt;br /&gt;
=== After upgrading to 3.9.5 some of my plugins have stopped working ===&lt;br /&gt;
The Moodle App 3.9.5 version came with some breaking changes for plugins, most of the existing plugins have been updated to support the new changes.&lt;br /&gt;
Please check the following list of plugins that should work for 3.9.5 once you have upgraded to the latest version indicated in the document: https://docs.google.com/spreadsheets/d/1E9PqcUBpp9SAfQc_zJtX5tf9GeS3UN76A85IrrB4UDw/edit#gid=0&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7798 Moodle for mobile forum] on moodle.org.&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[de:Moodle Mobile - FAQ]]&lt;br /&gt;
[[ca:Moodle Mobile FAQ]]&lt;br /&gt;
[[es:Moodle app FAQ]]&lt;br /&gt;
[[fr:Moodle pour les mobiles]]&lt;br /&gt;
[[ja:バイルMoodle FAQ]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Creating_mobile-friendly_courses&amp;diff=153089</id>
		<title>Creating mobile-friendly courses</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Creating_mobile-friendly_courses&amp;diff=153089"/>
		<updated>2025-05-16T08:13:10Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Offline activities */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
As more and more students access courses from their smartphones, tablets or other mobile devices, it is increasingly important to ensure your courses are mobile-friendly.&lt;br /&gt;
&lt;br /&gt;
Encouraging students to install the [https://download.moodle.org/mobile/ official Moodle mobile app] is one way to improve their learning experience. Below are some suggestions for optimising your course materials for students both using the app and accessing Moodle from mobile devices.&lt;br /&gt;
==Setting up your course==&lt;br /&gt;
*Custom sections or weekly course format is best suited to mobile devices. In topics format, the first section or the highlighted section is shown by default in the app. In weekly format, the current week is shown.&lt;br /&gt;
*Don&#039;t use stealth activities or direct links to activities (the links will work but is not the best experience for mobile).&lt;br /&gt;
*Blocks are collapsed by default and can be expanded by clicking the arrow-like tab on the right.&lt;br /&gt;
*If you have a mix of students accessing the course on mobile and desktop, consider asking your admin to install the [[Moodle Mobile availability plugin]] which restricts items to desktop or mobile users.&lt;br /&gt;
&lt;br /&gt;
==Course content==&lt;br /&gt;
*Use responsive HTML in pages.&lt;br /&gt;
*Use a [[Page]] or [[Book]] instead of downloadable documents where possible.&lt;br /&gt;
*Use a [[Page]] or [[Book]] for videos instead of adding them in [[Text and media area|Text and media area resources]], avoid embedding more than one video in the same page.&lt;br /&gt;
*Avoid uploading many documents or having numerous, text heavy pages. Think more in terms of short &amp;quot;information-bytes&amp;quot;.&lt;br /&gt;
*If you include YouTube videos, keep them short and consider providing them for download and offline viewing in a [[Folder resource|folder]]. Not all video formats are supported so add them in different formats. (MP4 is probably the most widely accepted format.)&lt;br /&gt;
* For YouTube or Vimeo videos, you may use Bootstrap responsive classes: https://getbootstrap.com/docs/4.0/utilities/embed/, for example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;div class=&amp;quot;embed-responsive&amp;quot;&amp;gt;&amp;lt;video...&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Note that drag and drop questions behave differently in the app. You can&#039;t drag images, you need to tap to select and tap to drop.&lt;br /&gt;
*Note that if you add YouTube video links or map links as URL resources, they will open automatically in the app.&lt;br /&gt;
{|&lt;br /&gt;
| [[File:moodlemobile_short_text_intro.png|thumb|Short text for label]]&lt;br /&gt;
| [[File:moodlemobile_responsive_html.png|thumb|Responsive HTML]]&lt;br /&gt;
| [[File:moodlemobile_youtube_maps_links.png|thumb|Map link]]&lt;br /&gt;
|}&lt;br /&gt;
* Use only plugins with mobile app support so they can be accessed via the mobile app - see [https://moodle.org/plugins/browse.php?list=award&amp;amp;id=6 Moodle plugins directory: Award: mobile app support].&lt;br /&gt;
* If you want to include large audio files in your course, consider including them embedded in a label or page rather than as a file resource. The reason is that embedded files will play even if the screen is locked but files won&#039;t play with the screen locked.&lt;br /&gt;
* Avoid relative URLs such as ../mod/page/views.php?id=X as the app won&#039;t be able to guess the proper URL, if it is necessary to use URLs without domain, please use absolute URLs such as /mod/page/views.php?id=X&lt;br /&gt;
&lt;br /&gt;
===Media download for offline usage===&lt;br /&gt;
To enable media files, such as video, to be automatically downloaded when viewed.&lt;br /&gt;
* The file must be uploaded to the course, rather than being linked to (from YouTube, Vimeo etc.)&lt;br /&gt;
* The file must be small - less than 2MB for 3G users or less than 20MB for WiFi users&lt;br /&gt;
When a page containing the video is viewed (without playing the video), the file will then be downloaded.&lt;br /&gt;
&lt;br /&gt;
When using Moodle Mobile 3.1 or later with a WiFi connection, when the video is played, the file will be downloaded in the background. The next time the video is played, the downloaded file will be used.&lt;br /&gt;
&lt;br /&gt;
Please note that if the user did a full download of the courses, the files will be downloaded regardless its size.&lt;br /&gt;
&lt;br /&gt;
===Activities===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quizzes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Quizzes with lots of questions do not perform very well on the website or the app as the backend server will have to do heavy preparatory work, especially if random questions are used. &lt;br /&gt;
&lt;br /&gt;
In general, our recommendation is to avoid having just a quiz with lots of questions, it is better to split it into different quizzes.&lt;br /&gt;
&lt;br /&gt;
Another recommendation is to limit the number of questions per page to avoid having more than 5 questions displayed on a single page on a very narrow screen.&lt;br /&gt;
&lt;br /&gt;
===Offline activities===&lt;br /&gt;
All the supported activities work offline, although some require specific settings like the lesson and quiz module, you can find bellow additional information:&lt;br /&gt;
* [[Moodle Mobile quiz offline attempts]] &lt;br /&gt;
* [[Moodle app H5P support#Working offline|Moodle H5P]]&lt;br /&gt;
* [[Moodle app SCORM player]]&lt;br /&gt;
&lt;br /&gt;
=== Things to avoid===&lt;br /&gt;
Some activities are not yet fully supported by the mobile app, so find alternatives. See [[Moodle Mobile SCORM player]] for things to avoid in SCORM packages.&lt;br /&gt;
&lt;br /&gt;
You can find the list of activities supported by the app in the [[Moodle Mobile features]] page.&lt;br /&gt;
&lt;br /&gt;
==Use the latest stable version of Moodle==&lt;br /&gt;
As indicated in [[Moodle Mobile features]] some features are only available in recent Moodle versions.&lt;br /&gt;
&lt;br /&gt;
It is recommended to use the [https://moodledev.io/general/releases latest stable version].&lt;br /&gt;
&lt;br /&gt;
==Notifications and messages==&lt;br /&gt;
Encourage your students to enable mobile notifications so they are alerted about calendar events, forum posts, messages, assignment submissions and so on. Find out more in [[Mobile app notifications]].&lt;br /&gt;
&lt;br /&gt;
You can also enable mobile notifications for all the users by default via the [[Messaging settings]] default message outputs. Students can disable Mobile notifications within the app.&lt;br /&gt;
==Mobile device considerations==&lt;br /&gt;
The app works better on devices running modern devices.&lt;br /&gt;
&lt;br /&gt;
In old devices you may find problems related to:&lt;br /&gt;
* User interface&lt;br /&gt;
* Connection problems (specifically when connecting to sites using https certificates)&lt;br /&gt;
* Slowness&lt;br /&gt;
&lt;br /&gt;
==Links to open the Moodle app==&lt;br /&gt;
If required, links which open the Moodle app may be provided in the course (for users browsing the site using a mobile device with the app installed).&lt;br /&gt;
&lt;br /&gt;
Links are of the form &amp;lt;code&amp;gt;moodlemobile://https://username@domain.com?token=TOKEN&amp;amp;privatetoken=PRIVATETOKEN&amp;amp;redirect=http://domain.com/course/view.php?id=2&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Please notice that this kind of links are only supported in Moodle app 3.7.0 onwards. If your app has an older version you&#039;ll have to use the old format: &amp;lt;code&amp;gt;moodlemobile://link=https://yourmoodlesite.org/mod/...&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For more information about this, please read [https://docs.moodle.org/dev/Open_the_Moodle_app_from_another_app Open the Moodle app from another app].&lt;br /&gt;
==Learn more==&lt;br /&gt;
* Free course on Moodle Academy [https://moodle.academy/enrol/index.php?id=100 Moodle App configuration]&lt;br /&gt;
* Forum post: [https://moodle.org/mod/forum/discuss.php?d=349160 Try the Moodle Mobile app with a mobile-friendly course].&lt;br /&gt;
* [https://docs.moodle.org/dev/Creating_mobile_question_types How to make third party question types work in Mobile] documentation for developers&lt;br /&gt;
[[de:Moodle Mobile - Websites optimieren]]&lt;br /&gt;
[[es:Crear sitios amistosos para Moodle Mobile]]&lt;br /&gt;
[[fr:Créer des cours pour appareils mobiles]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Creating_mobile-friendly_courses&amp;diff=153088</id>
		<title>Creating mobile-friendly courses</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Creating_mobile-friendly_courses&amp;diff=153088"/>
		<updated>2025-05-16T08:07:12Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Mobile device considerations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
As more and more students access courses from their smartphones, tablets or other mobile devices, it is increasingly important to ensure your courses are mobile-friendly.&lt;br /&gt;
&lt;br /&gt;
Encouraging students to install the [https://download.moodle.org/mobile/ official Moodle mobile app] is one way to improve their learning experience. Below are some suggestions for optimising your course materials for students both using the app and accessing Moodle from mobile devices.&lt;br /&gt;
==Setting up your course==&lt;br /&gt;
*Custom sections or weekly course format is best suited to mobile devices. In topics format, the first section or the highlighted section is shown by default in the app. In weekly format, the current week is shown.&lt;br /&gt;
*Don&#039;t use stealth activities or direct links to activities (the links will work but is not the best experience for mobile).&lt;br /&gt;
*Blocks are collapsed by default and can be expanded by clicking the arrow-like tab on the right.&lt;br /&gt;
*If you have a mix of students accessing the course on mobile and desktop, consider asking your admin to install the [[Moodle Mobile availability plugin]] which restricts items to desktop or mobile users.&lt;br /&gt;
&lt;br /&gt;
==Course content==&lt;br /&gt;
*Use responsive HTML in pages.&lt;br /&gt;
*Use a [[Page]] or [[Book]] instead of downloadable documents where possible.&lt;br /&gt;
*Use a [[Page]] or [[Book]] for videos instead of adding them in [[Text and media area|Text and media area resources]], avoid embedding more than one video in the same page.&lt;br /&gt;
*Avoid uploading many documents or having numerous, text heavy pages. Think more in terms of short &amp;quot;information-bytes&amp;quot;.&lt;br /&gt;
*If you include YouTube videos, keep them short and consider providing them for download and offline viewing in a [[Folder resource|folder]]. Not all video formats are supported so add them in different formats. (MP4 is probably the most widely accepted format.)&lt;br /&gt;
* For YouTube or Vimeo videos, you may use Bootstrap responsive classes: https://getbootstrap.com/docs/4.0/utilities/embed/, for example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;div class=&amp;quot;embed-responsive&amp;quot;&amp;gt;&amp;lt;video...&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Note that drag and drop questions behave differently in the app. You can&#039;t drag images, you need to tap to select and tap to drop.&lt;br /&gt;
*Note that if you add YouTube video links or map links as URL resources, they will open automatically in the app.&lt;br /&gt;
{|&lt;br /&gt;
| [[File:moodlemobile_short_text_intro.png|thumb|Short text for label]]&lt;br /&gt;
| [[File:moodlemobile_responsive_html.png|thumb|Responsive HTML]]&lt;br /&gt;
| [[File:moodlemobile_youtube_maps_links.png|thumb|Map link]]&lt;br /&gt;
|}&lt;br /&gt;
* Use only plugins with mobile app support so they can be accessed via the mobile app - see [https://moodle.org/plugins/browse.php?list=award&amp;amp;id=6 Moodle plugins directory: Award: mobile app support].&lt;br /&gt;
* If you want to include large audio files in your course, consider including them embedded in a label or page rather than as a file resource. The reason is that embedded files will play even if the screen is locked but files won&#039;t play with the screen locked.&lt;br /&gt;
* Avoid relative URLs such as ../mod/page/views.php?id=X as the app won&#039;t be able to guess the proper URL, if it is necessary to use URLs without domain, please use absolute URLs such as /mod/page/views.php?id=X&lt;br /&gt;
&lt;br /&gt;
===Media download for offline usage===&lt;br /&gt;
To enable media files, such as video, to be automatically downloaded when viewed.&lt;br /&gt;
* The file must be uploaded to the course, rather than being linked to (from YouTube, Vimeo etc.)&lt;br /&gt;
* The file must be small - less than 2MB for 3G users or less than 20MB for WiFi users&lt;br /&gt;
When a page containing the video is viewed (without playing the video), the file will then be downloaded.&lt;br /&gt;
&lt;br /&gt;
When using Moodle Mobile 3.1 or later with a WiFi connection, when the video is played, the file will be downloaded in the background. The next time the video is played, the downloaded file will be used.&lt;br /&gt;
&lt;br /&gt;
Please note that if the user did a full download of the courses, the files will be downloaded regardless its size.&lt;br /&gt;
&lt;br /&gt;
===Offline activities===&lt;br /&gt;
All the supported activities work offline, although some require specific settings like the lesson and quiz module, you can find bellow additional information:&lt;br /&gt;
* [[Moodle Mobile quiz offline attempts]] &lt;br /&gt;
* [[Moodle app H5P support#Working offline|Moodle H5P]]&lt;br /&gt;
* [[Moodle app SCORM player]]&lt;br /&gt;
=== Things to avoid===&lt;br /&gt;
Some activities are not yet fully supported by the mobile app, so find alternatives. See [[Moodle Mobile SCORM player]] for things to avoid in SCORM packages.&lt;br /&gt;
&lt;br /&gt;
You can find the list of activities supported by the app in the [[Moodle Mobile features]] page.&lt;br /&gt;
&lt;br /&gt;
==Use the latest stable version of Moodle==&lt;br /&gt;
As indicated in [[Moodle Mobile features]] some features are only available in recent Moodle versions.&lt;br /&gt;
&lt;br /&gt;
It is recommended to use the [https://moodledev.io/general/releases latest stable version].&lt;br /&gt;
&lt;br /&gt;
==Notifications and messages==&lt;br /&gt;
Encourage your students to enable mobile notifications so they are alerted about calendar events, forum posts, messages, assignment submissions and so on. Find out more in [[Mobile app notifications]].&lt;br /&gt;
&lt;br /&gt;
You can also enable mobile notifications for all the users by default via the [[Messaging settings]] default message outputs. Students can disable Mobile notifications within the app.&lt;br /&gt;
==Mobile device considerations==&lt;br /&gt;
The app works better on devices running modern devices.&lt;br /&gt;
&lt;br /&gt;
In old devices you may find problems related to:&lt;br /&gt;
* User interface&lt;br /&gt;
* Connection problems (specifically when connecting to sites using https certificates)&lt;br /&gt;
* Slowness&lt;br /&gt;
&lt;br /&gt;
==Links to open the Moodle app==&lt;br /&gt;
If required, links which open the Moodle app may be provided in the course (for users browsing the site using a mobile device with the app installed).&lt;br /&gt;
&lt;br /&gt;
Links are of the form &amp;lt;code&amp;gt;moodlemobile://https://username@domain.com?token=TOKEN&amp;amp;privatetoken=PRIVATETOKEN&amp;amp;redirect=http://domain.com/course/view.php?id=2&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Please notice that this kind of links are only supported in Moodle app 3.7.0 onwards. If your app has an older version you&#039;ll have to use the old format: &amp;lt;code&amp;gt;moodlemobile://link=https://yourmoodlesite.org/mod/...&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For more information about this, please read [https://docs.moodle.org/dev/Open_the_Moodle_app_from_another_app Open the Moodle app from another app].&lt;br /&gt;
==Learn more==&lt;br /&gt;
* Free course on Moodle Academy [https://moodle.academy/enrol/index.php?id=100 Moodle App configuration]&lt;br /&gt;
* Forum post: [https://moodle.org/mod/forum/discuss.php?d=349160 Try the Moodle Mobile app with a mobile-friendly course].&lt;br /&gt;
* [https://docs.moodle.org/dev/Creating_mobile_question_types How to make third party question types work in Mobile] documentation for developers&lt;br /&gt;
[[de:Moodle Mobile - Websites optimieren]]&lt;br /&gt;
[[es:Crear sitios amistosos para Moodle Mobile]]&lt;br /&gt;
[[fr:Créer des cours pour appareils mobiles]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_guide_for_admins&amp;diff=152419</id>
		<title>Moodle app guide for admins</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_guide_for_admins&amp;diff=152419"/>
		<updated>2025-05-06T06:27:16Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* App banners */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
==Enable mobile services on your site==&lt;br /&gt;
Your site needs to have mobile access enabled so users can use the mobile app.&lt;br /&gt;
&lt;br /&gt;
For sites using https, mobile access is enabled by default in new installations of Moodle 3.0 onwards.&lt;br /&gt;
&lt;br /&gt;
For http sites, mobile access can be enabled by an administrator as follows:&lt;br /&gt;
# In &#039;&#039;Site administration &amp;gt; Mobile app &amp;gt; Mobile settings&#039;&#039; tick the &#039;Enable web services for mobile devices&#039; checkbox. (For 4.0 version: In &#039;&#039;Site administration &amp;gt; Advanced features&#039;&#039; tick the &#039;Enable web services for mobile devices&#039; checkbox&lt;br /&gt;
# Click the button to save changes.&lt;br /&gt;
If your site uses a [https://en.wikipedia.org/wiki/Transport_Layer_Security SSL certificate], it must be a trusted certificate. For security reasons the app doesn&#039;t work with self-signed certificates.&lt;br /&gt;
&lt;br /&gt;
Please, verify that your certificate is valid via: https://www.geocerts.com/ssl_checker (you shouldn&#039;t see any warning).&lt;br /&gt;
&lt;br /&gt;
If your site has the /login directory protected (frequently done when using the Shibboleth authentication method), you must enable access to the login/token.php script.&lt;br /&gt;
===Frame embedding===&lt;br /&gt;
If your sites uses [https://en.wikipedia.org/wiki/ReCAPTCHA reCaptcha], Vimeo videos or custom menu items (as described bellow) you must enable the admin setting &amp;quot;Allow frame embedding&amp;quot; (allowframembedding). Please, note this is not necessary since Moodle 3.7&lt;br /&gt;
===Is your site behind a proxy, or load balancer or complex network infrastructure?===&lt;br /&gt;
In that case, you may need to configure the &amp;quot;Ignore reserver proxies&amp;quot; settings in Site administration &amp;gt; Administration &amp;gt; Server &amp;gt; HTTP&lt;br /&gt;
==Register your site on the Moodle Apps Portal==&lt;br /&gt;
We strongly recommend you to register your site for free on the Moodle Apps portal: https://apps.moodle.com&lt;br /&gt;
&lt;br /&gt;
You will be able to retrieve statistics like the number of active user devices receiving Push Notifications and upgrade to a Pro/Premium plan for enjoying exclusive features.&lt;br /&gt;
==Simplify user onboarding==&lt;br /&gt;
Upon opening the Moodle app, first-time users encounter a &amp;quot;Your site&amp;quot; field, where they have to input the URL of their Moodle site to access their courses. To ensure a smooth onboarding experience for new users, follow these steps:&lt;br /&gt;
# Enable the &#039;&#039;&#039;Site finder&#039;&#039;&#039; feature that allows users to find their Moodle site by name, eliminating the need to manually enter the site URL. To enable this feature, view [[Moodle app guide for admins#Have your site listed in the Moodle app site finder|Have your site listed in the Moodle app site finder]] below.&lt;br /&gt;
# Enable the &#039;&#039;&#039;QR login&#039;&#039;&#039; feature (view [[Moodle app guide for admins#QR Login|instructions]] below). This feature allows users to scan a QR code available on their Moodle profile to access their Moodle site directly from the app. &lt;br /&gt;
# For Android users and Moodle LMS 4.3 and later: Encourage users to install the Moodle app by following the &#039;&#039;&#039;Get the mobile app&#039;&#039;&#039; link at the bottom of any Moodle page (located within the &amp;quot;&#039;&#039;&#039;?&#039;&#039;&#039;&amp;quot; icon on the desktop version). When users install the app through this link, they will be automatically redirected to their site login screen, eliminating the need to manually enter the site URL.&lt;br /&gt;
# Alternatively, you can create a dedicated help page for the Moodle app. This help page should include a link to the Google Play version of the app and clearly indicate the site URL referrer. For example, if your Moodle site is mymoodlesite.com the link will be https://play.google.com/store/apps/details?id=com.moodle.moodlemobile&amp;amp;referrer=siteurl%3Dhttps%3A%2F%2Fmymoodlesite.com&lt;br /&gt;
Please note that options 3&amp;amp;4 are not compatible with Google Workspace accounts (the installation referrer will be ignored in that case).&lt;br /&gt;
==Have your site listed in the Moodle app site finder==&lt;br /&gt;
The Moodle apps site finder enables a user to easily find their Moodle site by entering the name (no need to enter the site URL)&lt;br /&gt;
===How can I have my site listed in the Moodle app site finder?===&lt;br /&gt;
Your site will be automatically listed in the site finder if:&lt;br /&gt;
* either your site is registered and listed with a link on [https://stats.moodle.org/sites/ Registered sites] and has over five hundred mobile users and you have been using the Moodle app for over a year&lt;br /&gt;
* or you have purchased a [https://moodle.com/app/ Pro or Premium Moodle app subscription].&lt;br /&gt;
You can arrange for your site to be listed in the site finder as follows:&lt;br /&gt;
* If your site is hosted by a Moodle Partner, please contact them to request for your site to be listed. &lt;br /&gt;
* If you have a MoodleCloud site, please log in to the Moodle Apps Portal where you will find an option to have your site listed.&lt;br /&gt;
Otherwise, to have your site listed in the site finder, you need to purchase a [https://moodle.com/app/ Pro or Premium Moodle app subscription] from the Moodle Apps Portal.&lt;br /&gt;
===I don’t want my site listed in the Moodle app site finder. How can I remove it?===&lt;br /&gt;
You can remove your site from the site finder as follows:&lt;br /&gt;
# Log in to the [https://apps.moodle.com/ Moodle Apps Portal]. (If you don&#039;t yet have an account, you can create one for free.)&lt;br /&gt;
# Go to ‘App customisation’ -&amp;gt; ‘Site Listing’ and uncheck the option ‘Visible’ then save changes. &lt;br /&gt;
Your site will then be immediately removed from the site finder.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can remove your site from the site finder by updating your site registration:&lt;br /&gt;
# Log in to your Moodle site as admin and go to ‘Site administration’ -&amp;gt; Registration.&lt;br /&gt;
# Change ‘Site listing’ to either ‘Do not list my site’ or ‘Only display my site name’.&lt;br /&gt;
Your site will then be removed from the site finder within 24 hours.&lt;br /&gt;
==Mobile authentication==&lt;br /&gt;
&lt;br /&gt;
===MFA===&lt;br /&gt;
The Moodle mobile app does not support MFA natively yet, however, you can redirect users to a browser to force the authentication process to behave exactly as Moodle LMS. You can do the previous via Site administration &amp;gt; Mobile authentication &amp;gt; Type of login and then select any of the options that mention browser.&lt;br /&gt;
&lt;br /&gt;
===SSO authentication method===&lt;br /&gt;
If your site uses a SSO authentication method (CAS, Shibboleth, LDAP SSO, OAuth...), then select via a browser window or via an embedded browser for &#039;Type of login&#039; (typeoflogin) in &#039;Mobile authentication&#039; in the Site administration. (This setting is provided for older pre-Moodle 3.2 sites via the [[Moodle Mobile additional features]] plugin.)&lt;br /&gt;
&lt;br /&gt;
The options &#039;browser window&#039; and &#039;embedded browser&#039; are very similar; the only difference is when redirecting the user to enter their credentials in the site, the site will be opened in the device&#039;s default browser (for browser window) or the site will be opened &amp;quot;embedded&amp;quot; in the mobile app (for embedded browser). The user experience is better in embedded browser, but not all the authentication plugins will work in embedded browser (for example, if JavaScript popups are required they must use the &#039;browser window&#039;). The admin should check whether both options work, and if so, choose &#039;embedded browser&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are using Google OAuth you will have to use the &#039;browser window&#039; method because Google recently blocked authentication via &#039;embedded browsers&#039;.&lt;br /&gt;
&lt;br /&gt;
If your organisation uses a custom branded app and &#039;Type of login&#039; is set to &#039;Via a browser window&#039; or &#039;Via embedded browser&#039;, then a URL scheme (forcedurlscheme) may be set. This will result in only the custom branded app working for the site: the official Moodle Mobile app will not work.&lt;br /&gt;
===QR Login===&lt;br /&gt;
Please note that this feature requires Moodle 3.9 and is only available if you are enjoying a [https://moodle.com/app/ Pro/Premium plan].&lt;br /&gt;
&lt;br /&gt;
As a site administrator, you can enable login via QR. Please go to Site administration &amp;gt; Mobile app &amp;gt; Mobile authentication and select &amp;quot;QR code with automatic login&amp;quot; in the &amp;quot;QR code access&amp;quot; setting&lt;br /&gt;
&lt;br /&gt;
Once enabled, your students will be able to login in the app by scanning a QR code available on their Moodle site profile.&lt;br /&gt;
===Biometric Login===&lt;br /&gt;
This feature is only available to Pro and [https://apps.moodle.com Premium plan customers].&lt;br /&gt;
&lt;br /&gt;
Biometric login allows your users to log in to your site via the Moodle App on Android and iOS devices using their fingerprint, face recognition or any other biometric option available on their mobile device. This makes the login process simpler, faster and more secure, and is specially useful if Autologout is enabled on your site.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enabling biometric login for your site&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can enable Biometric login as an authentication method through the Moodle Apps Portal, going to App customisation &amp;gt; Authentication &amp;gt; Biometric login, and then selecting “Enable biometric login”. Your users will then be able to choose whether they want to use Biometric login or not.&lt;br /&gt;
&lt;br /&gt;
For security reasons, users may be prompted to re-enter their credentials periodically. This interval is determined by the &#039;User created token duration&#039; (tokenduration) security setting, which is set to a default duration of three months. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setting up biometric login as a user&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To use biometric login in the Moodle App, users must have biometric authentication enabled in their own device&#039;s settings (e.g. FaceID or TouchID for iOs users, or Fingerprints for Android users).&lt;br /&gt;
&lt;br /&gt;
The first three times users log in to the app after you enable Biometric login, they will see a notification telling them that they can activate this new authentication method to access the app (provided that they have biometric authentication enabled in their device&#039;s settings).&lt;br /&gt;
&lt;br /&gt;
Users can activate and deactivate their biometric login any time in the Moodle App in User account &amp;gt; Preferences.&lt;br /&gt;
===Auto logout===&lt;br /&gt;
From Moodle LMS 4.3 onwards, you can enhance security by enforcing automatic logout for your users when they leave or close the app, or it goes to the background.&lt;br /&gt;
&lt;br /&gt;
You can even set your own custom re-authentication time, to suit your organisation&#039;s security requirements. &lt;br /&gt;
&lt;br /&gt;
To activate auto logout, go to Site administration &amp;gt; Mobile app &amp;gt; Mobile authentication.&lt;br /&gt;
&lt;br /&gt;
This feature is particularly effective when paired with Biometric login, since that streamlines the login process for your users.&lt;br /&gt;
&lt;br /&gt;
== Customise your app theme ==&lt;br /&gt;
The app can also retrieve your custom styles from your Moodle site. Since the app is a HTML5 app, you can safely apply any CSS, CSS2 and CSS3 style.&lt;br /&gt;
&lt;br /&gt;
Go to &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Mobile app &amp;gt; Mobile appearance&#039;&#039; and enter in the mobilecssurl field a valid URL pointing to a CSS file containing your custom styles.&lt;br /&gt;
&lt;br /&gt;
The CSS should be placed inside your Moodle installation (in your custom theme or inside a local plugin).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For example:&#039;&#039;&#039; &#039;&#039;https://mymoodlesite.com/theme/mytheme/style/mymobileapp.css&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Once the user is logged in the app, remote CSS files for applying your custom styles are regularly retrieved.&lt;br /&gt;
&lt;br /&gt;
Notice that on the first time a user opens the app, he will see the default &amp;quot;orange&amp;quot; style. Your custom styles will be applied once the user has added a site in the app.&lt;br /&gt;
&lt;br /&gt;
For further information, see the dev docs [https://docs.moodle.org/dev/Moodle%20Mobile%20Themes Moodle Mobile Themes].&lt;br /&gt;
&lt;br /&gt;
If you want your own custom branding for your organization, Moodle offers the The [https://moodle.com/branded-app Branded Moodle Mobile app] service, please visit https://moodle.com/app/ for more information.&lt;br /&gt;
== Moodle Mobile additional features plugin for old Moodle sites ==&lt;br /&gt;
For old Moodle sites it is recommended to install the [[Moodle Mobile additional features]] plugin.&lt;br /&gt;
== Notifications ==&lt;br /&gt;
You might find them annoying but push notifications keeps you and your users informed and updated on everything about the app. Moodle only send useful and important notifications such as new features or service disruptions.&lt;br /&gt;
&lt;br /&gt;
Enabling push notifications is easy! An administrator can enable it by connecting their Moodle site/s to our free Notifications server available (only) for registered Moodle sites. &lt;br /&gt;
&lt;br /&gt;
An access key can be obtained via &#039;&#039;Site administration &amp;gt; General &amp;gt; Messaging &amp;gt; Notification settings&#039;&#039;. Be sure the &#039;Mobile&#039; is enabled and then click the link to settings, on the next page select &#039;&#039;Request access key&#039;&#039;. (For Moodle site versions 3.5 and 3.6 an access key can be obtained via &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Message outputs &amp;gt; Manage message outputs&#039;&#039;. Then by clicking the link to the Mobile settings, on the next page select &#039;&#039;Request access key&#039;&#039;.)&lt;br /&gt;
&lt;br /&gt;
The full guide on enabling push notifications can be found here: [[Mobile app notifications]]&lt;br /&gt;
== App banners ==&lt;br /&gt;
[[File:app banner.png|thumb|Moodle Mobile app banner]]&lt;br /&gt;
App banners let your users know a mobile app is available for the site. App banners are only displayed when accessing the site using a mobile browser.&lt;br /&gt;
&lt;br /&gt;
App banners are disabled by default. They can be enabled in &#039;Mobile appearance&#039; in the Site administration.&lt;br /&gt;
&lt;br /&gt;
If you are using a custom mobile app, you must provide the unique identifier for the iOS and Android app; if you use the Moodle Mobile app, the settings may be left as default.&lt;br /&gt;
&lt;br /&gt;
Please, notice the following:&lt;br /&gt;
* App banners for iOS devices (iPhone, iPad or iPod) are only shown when accessing the site using the Safari browser and the mobile app is not installed on the device yet. App banners are not displayed when using private browsing either.&lt;br /&gt;
* App banners for Android devices are only shown in very recent Chrome browser versions and when the app is not installed. Note also that Chrome uses an engagement heuristic that will display the banner only under certain conditions, like interactions with the site, the last time you interacted with it, etc. You can remove the engagement restriction check by disabling this special chrome flag: chrome://flags/#bypass-app-banner-engagement-checks. Please note also that certain custom Android versions (such as Samsung and Huawei ones) do not always support this feature&lt;br /&gt;
&lt;br /&gt;
==&#039;Get the mobile app&#039; link==&lt;br /&gt;
In Moodle 3.4 onwards, the link &#039;Get the mobile app&#039; in the footer of each page on the site encourages users to make use of the mobile app. &lt;br /&gt;
&lt;br /&gt;
By default, the link is https://download.moodle.org/mobile however the setting &#039;App download page&#039; can be changed e.g. for sites using a branded mobile app.&lt;br /&gt;
&lt;br /&gt;
If mobile services are not enabled for the site, then the &#039;Get the mobile app&#039; link is not displayed. &lt;br /&gt;
&lt;br /&gt;
To prevent the &#039;Get the mobile app&#039; link being displayed, simply remove the URL from the &#039;App download page&#039; setting and save changes.&lt;br /&gt;
== Configuring the app from your site ==&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Please notice that the type and number of features that you can customise depend on your Moodle Apps plan, you can register for free on https://apps.moodle.com to check the different plans.&lt;br /&gt;
&lt;br /&gt;
In Moodle 3.3 onwards, or with the [[Moodle Mobile additional features]] plugin, settings in the Site administration enable admins to configure the app.&lt;br /&gt;
* In Moodle 3.3 onwards go to &#039;&#039;Site administration &amp;gt; Mobile features&#039;&#039;&lt;br /&gt;
* In sites with the Moodle Mobile additional features plugin installed, go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Local plugins &amp;gt; Mobile additional features&#039;&#039;&lt;br /&gt;
===Force log out===&lt;br /&gt;
Replace the Change site option to &amp;quot;Log out&amp;quot; so that users must enter their credentials on their next access. This is useful for custom mobile apps, as there is no reason for users wanting to switch to a different site.&lt;br /&gt;
===Disabled features===&lt;br /&gt;
The mobile app may be simplified by removing unwanted features. Some items may already be not available in the app because they are not enabled on your site.&lt;br /&gt;
&lt;br /&gt;
Options to remove include:&lt;br /&gt;
&lt;br /&gt;
* Offline use&lt;br /&gt;
* Blocks (Note that from &#039;&#039;&#039;Moodle 4.3.1&#039;&#039;&#039; the Global search and Search forums blocks can be removed.)&lt;br /&gt;
* Comments&lt;br /&gt;
* Ratings&lt;br /&gt;
* Tags&lt;br /&gt;
* Create new account&lt;br /&gt;
* Responsive menu items &lt;br /&gt;
* Main menu&lt;br /&gt;
** Site home&lt;br /&gt;
** My courses&lt;br /&gt;
** Dashboard&lt;br /&gt;
** Calendar&lt;br /&gt;
** Notifications&lt;br /&gt;
** Messages&lt;br /&gt;
** Grades&lt;br /&gt;
** My learning plans&lt;br /&gt;
** Blog&lt;br /&gt;
** Files&lt;br /&gt;
** Web page&lt;br /&gt;
** Help&lt;br /&gt;
* Course&lt;br /&gt;
** Blocks&lt;br /&gt;
** Blog&lt;br /&gt;
** Search&lt;br /&gt;
** Competencies&lt;br /&gt;
** Participants&lt;br /&gt;
** Grades&lt;br /&gt;
** Course completion&lt;br /&gt;
** Notes&lt;br /&gt;
** Download course (new in 3.5)&lt;br /&gt;
** Download courses (new in 3.5)&lt;br /&gt;
* User&lt;br /&gt;
** Blog&lt;br /&gt;
** Badges&lt;br /&gt;
** Competencies&lt;br /&gt;
** Course completion&lt;br /&gt;
** Grades&lt;br /&gt;
** Send message&lt;br /&gt;
** Add contact&lt;br /&gt;
** Block contact&lt;br /&gt;
** Add a new note&lt;br /&gt;
** User picture&lt;br /&gt;
* Files&lt;br /&gt;
** Private files&lt;br /&gt;
** Ste files&lt;br /&gt;
** Upload&lt;br /&gt;
* Modules (Each module can be disabled separately)&lt;br /&gt;
* Blocks (Each block available in the app can be disabled separately)&lt;br /&gt;
&lt;br /&gt;
===Custom menu items===&lt;br /&gt;
Additional items can be added to the app main menu (the more menu), such as a link to a different grade book.&lt;br /&gt;
&lt;br /&gt;
In order to do so go to &amp;quot;Site administration &amp;gt; Mobile features &amp;gt; Custom menu items&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Each custom menu item should have the format: item text, link URL, link-opening method and language code (optional, for displaying the item to users of the specified language only), icon (optional, the name of the icon from https://ionicons.com) separated by pipe characters.&lt;br /&gt;
&lt;br /&gt;
Possible link-opening methods are:&lt;br /&gt;
* app - for linking to an activity supported by the app i.e. almost all activity types, as listed in [[Moodle Mobile features]].&lt;br /&gt;
* inappbrowser - for linking to external URLs or site functionalities not supported by the app. The link will open in a browser inside the app overlaying the complete screen.&lt;br /&gt;
* browser - as for inappbrowser except that the link will instead open in the device default browser outside the app.&lt;br /&gt;
* embedded - as for inappbrowser except that the link will instead open in an iframe in a new page in the app. (For this option you may need to enable the admin setting &amp;quot;Allow frame embedding&amp;quot; (allowframembedding)&lt;br /&gt;
Tip: If you add a custom menu item and save changes, then it doesn&#039;t appear in the app main menu, double check that the item is correctly formatted.&lt;br /&gt;
&lt;br /&gt;
Please, note that if custom menu items have the same URL, same link-opening method, and same language only the first custom menu item will be shown.&lt;br /&gt;
&lt;br /&gt;
Please, note that if the app is using a language not indicated in the previous list, the first language in the list will be used. (So if you have a custom menu item in English (en) and French (fr), and the app is using Spanish the user will still see that custom menu item in English)&lt;br /&gt;
&lt;br /&gt;
If you want options tied to a language, you can append _only to the language code, for example:&lt;br /&gt;
en_only&lt;br /&gt;
es_only, will display the custom menu item only when the app language is English or Spanish.&lt;br /&gt;
&lt;br /&gt;
Example of a menu item (it will display a home icon followed by Academy information linking to the URL indicated):&lt;br /&gt;
 Academy information|https://yoursite.com/mod/page/view.php?id=X |app|en|home&lt;br /&gt;
&lt;br /&gt;
===Responsive menu items===&lt;br /&gt;
From 3.7 onwards menu items on bottom tabs are moved to the side of the screen on big screens. Also the number of items displayed on the menu may vary:&lt;br /&gt;
* On small screens (usually phones) from 2 to 5 items will be displayed depending on the size of the screen.&lt;br /&gt;
* On big screens (usually tablets an desktop version) more than 2 items will be displayed without limit.&lt;br /&gt;
If &#039;&#039;&#039;Responsive menu items&#039;&#039;&#039; is selected in Disabled features items will be displayed in side of bottom anyway but 5 items will be displayed in all cases without depending on the size of the screen.&lt;br /&gt;
===Custom language strings ===&lt;br /&gt;
Words and phrases displayed in the app can be customised via the &amp;quot;Site administration &amp;gt; Mobile app features &amp;gt; Custom language strings&amp;quot; (customlangstrings) setting.&lt;br /&gt;
&lt;br /&gt;
Enter each custom language string on a new line with format: string identifier, custom language string and language code, separated by pipe characters. For example:&lt;br /&gt;
 core.user.student|Learner|en&lt;br /&gt;
 core.user.student|Aprendiz|es&lt;br /&gt;
The complete list of string identifiers is listed in https://latest.apps.moodledemo.net/assets/lang/en.json&lt;br /&gt;
&lt;br /&gt;
The string identifier is before the colon. &lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;core.user.student&amp;quot;: &amp;quot;Student&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
means that the string &amp;quot;Student&amp;quot; has string identifier &amp;quot;core.user.student&amp;quot;.&lt;br /&gt;
==Analytics and stats==&lt;br /&gt;
&lt;br /&gt;
===Usage statistics from your Moodle site===&lt;br /&gt;
&lt;br /&gt;
To retrieve information about the Moodle app usage, site administrators and teachers can check the system, course or activity logs.&lt;br /&gt;
&lt;br /&gt;
Among the log filters, there is a field called &amp;quot;All sources&amp;quot; with an option &amp;quot;Web Service/ws&amp;quot; that can be used to filter the entry logs generated by the mobile application.&lt;br /&gt;
&lt;br /&gt;
You can compare the number of log entries generated by the &amp;quot;Web&amp;quot; versus &amp;quot;Web Service&amp;quot; (mobile app) to have an overall idea about how your users use the platform.&lt;br /&gt;
&lt;br /&gt;
Please, notice that if you have custom &amp;quot;Web Services&amp;quot; or an installed plugin that uses Web Services, you will also see entries for them under the same filter.&lt;br /&gt;
&lt;br /&gt;
If you have access to the site database, the table &amp;quot;external_tokens&amp;quot; has a &amp;quot;lastaccess&amp;quot; timestamp field that could be used to obtain active users of the app every day.&lt;br /&gt;
&lt;br /&gt;
===Integration with Matomo analytics===&lt;br /&gt;
Note: This feature is available for [https://apps.moodle.com Premium app plans and Branded Moodle Apps]. To use this integration, you will need to have your own instance of Matomo. &lt;br /&gt;
&lt;br /&gt;
Matomo is an open source web analytics tool that helps you monitor traffic to your Moodle site, including app activity. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Connecting to your Matomo instance in the Apps portal&#039;&#039;&#039;&lt;br /&gt;
[[File:Captura de pantalla 2023-11-14 a las 12.03.36.png|thumb|Moodle App Matomo Integration set up]]&lt;br /&gt;
To use Matomo to track app activity on your Moodle site, you will need to have your own instance of Matomo analytics, and to add your Moodle site as one of your measurable websites (see instructions on [https://matomo.org/faq/how-to/create-and-manage-websites/ Matomo’s website]). Then, follow these steps:&lt;br /&gt;
# Log in to the [https://apps.moodle.com Apps portal]. &lt;br /&gt;
# Go to &#039;&#039;&#039;App customisation&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;Analytics&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;Matomo analytics&#039;&#039;&#039;.&lt;br /&gt;
# Check &#039;&#039;&#039;Track app activity&#039;&#039;&#039;.&lt;br /&gt;
# Add your &#039;&#039;&#039;Matomo URL&#039;&#039;&#039; - that&#039;s the URL of your Matomo instance, for example https://yoursite.matomo.cloud.&lt;br /&gt;
# Add the &#039;&#039;&#039;Website ID&#039;&#039;&#039; associated with your Moodle site in Matomo. To obtain this ID:&lt;br /&gt;
## Log in to your Matomo account.&lt;br /&gt;
## Go to &#039;&#039;&#039;Administration&#039;&#039;&#039; using the gear icon on the right side of the top navigation bar.&lt;br /&gt;
## On the left-hand panel, select &#039;&#039;&#039;Websites&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;Manage&#039;&#039;&#039;.&lt;br /&gt;
## In your list of measurables, find the Moodle site in which you want to track app activity. The &#039;&#039;&#039;ID&#039;&#039;&#039; of the measurable is the &#039;&#039;&#039;Website ID&#039;&#039;&#039; you need to enter in the apps portal.&lt;br /&gt;
# Click &#039;&#039;&#039;Save changes&#039;&#039;&#039; to establish the connection and start tracking app activity.&lt;br /&gt;
# If you&#039;d like to stop tracking at any time, uncheck &#039;&#039;&#039;Track app activity&#039;&#039;&#039; and then save changes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To filter Matomo data to isolate mobile app usage from Moodle site interactions, follow these steps:&lt;br /&gt;
[[File:Captura de pantalla 2023-11-14 a las 12.05.05.png|thumb|Moodle App Matomo referrer set-up]]&lt;br /&gt;
# Log in to your Matomo account.&lt;br /&gt;
# Click &#039;&#039;&#039;All visits&#039;&#039;&#039; at the top of the page&lt;br /&gt;
# Create a custom segment by applying this configuration: “Referrer URL” “is” “https://moodlemobile”&lt;br /&gt;
# To only see Moodle site interactions, do the following: “Referrer URL” “is not” “https://moodlemobile”&lt;br /&gt;
&lt;br /&gt;
Please notice that the integration with Matomo does not work offline.&lt;br /&gt;
&lt;br /&gt;
===Google Analytics for Firebase===&lt;br /&gt;
Only available when purchasing a [https://moodle.com/branded-app/ Branded Moodle App]. &lt;br /&gt;
&lt;br /&gt;
Google Analytics for Firebase is a free tool that provides valuable insights and data about how users interact with mobile apps.&lt;br /&gt;
&lt;br /&gt;
Please notice that the integration with Google Analytics for Firebase does not work offline.&lt;br /&gt;
&lt;br /&gt;
===Google Play and Apple App Store statistics===&lt;br /&gt;
&lt;br /&gt;
If you have a custom mobile application, you can access statistics about app downloads and user engagement such as weekly active users and devices.&lt;br /&gt;
&lt;br /&gt;
Google play:&lt;br /&gt;
# Go to Google Play console: https://play.google.com/console&lt;br /&gt;
# Select your app from the list.&lt;br /&gt;
# Navigate to specific tabs, such as &amp;quot;Statistics&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apple App Store:&lt;br /&gt;
# Log in to App Store Connect: https://appstoreconnect.apple.com/&lt;br /&gt;
# Go to &amp;quot;App Analytics&amp;quot; from the dashboard.&lt;br /&gt;
&lt;br /&gt;
==Web services token duration==&lt;br /&gt;
From Moodle 3.4 onwards, an admin can set how long a web services token created by a user (for example via the mobile app) is valid. (In previous versions of Moodle a token was valid for 3 months.)&lt;br /&gt;
&lt;br /&gt;
The setting that dictates the previous &#039;User created token duration&#039; (tokenduration) can be found under the Security section.&lt;br /&gt;
==App&#039;s cache==&lt;br /&gt;
The app caches WebService requests to decrease data usage and increase the app&#039;s speed. When the app needs to get some data from Moodle, it will use a cached request as long as it isn&#039;t expired.&lt;br /&gt;
&lt;br /&gt;
This cache was improved in Moodle App 3.7.0, now there are several cache times depending on the WS being called. This means that some requests will expire more often than others. Also, if the user isn&#039;t using a WiFi connection, the expiration time will also be longer to decrease the data usage. These cache times cannot be configured using a Moodle setting.&lt;br /&gt;
==See also==&lt;br /&gt;
* [https://moodle.academy/course/view.php?id=100 Moodle App Configuration]- a free self-paced course for admins on Moodle Academy.&lt;br /&gt;
* [[Moodle Mobile FAQ]] for other administration-related mobile app questions.&lt;br /&gt;
* [[Moodle app security]]&lt;br /&gt;
* [https://docs.moodle.org/dev/Moodle%20Mobile%20debugging%20WS%20requests dev:Moodle Mobile debugging WS requests] - a guide to helping you find and report problems with the Moodle Mobile app on your site&lt;br /&gt;
* [https://docs.moodle.org/dev/%20Moodle%20Mobile%20Roadmap dev: Moodle Mobile Roadmap]&lt;br /&gt;
* [https://docs.moodle.org/dev/Moodle%20Mobile%20release%20notes dev:Moodle Mobile release notes]&lt;br /&gt;
* [https://docs.moodle.org/dev/Moodle%20Mobile Moodle Mobile developer docs]&lt;br /&gt;
* [[Moodle Mobile availability plugin]]&lt;br /&gt;
* [[Mobile web services]]&lt;br /&gt;
[https://docs.moodle.org/fr/ Guide mobile pour administrateurs]&lt;br /&gt;
[https://docs.moodle.org/es/Moodle app guía para administradores]&lt;br /&gt;
[https://docs.moodle.org/de/Moodle App - Anleitung für Administrator/innen]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_guide_for_admins&amp;diff=152418</id>
		<title>Moodle app guide for admins</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_guide_for_admins&amp;diff=152418"/>
		<updated>2025-05-06T06:26:37Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* App banners */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
==Enable mobile services on your site==&lt;br /&gt;
Your site needs to have mobile access enabled so users can use the mobile app.&lt;br /&gt;
&lt;br /&gt;
For sites using https, mobile access is enabled by default in new installations of Moodle 3.0 onwards.&lt;br /&gt;
&lt;br /&gt;
For http sites, mobile access can be enabled by an administrator as follows:&lt;br /&gt;
# In &#039;&#039;Site administration &amp;gt; Mobile app &amp;gt; Mobile settings&#039;&#039; tick the &#039;Enable web services for mobile devices&#039; checkbox. (For 4.0 version: In &#039;&#039;Site administration &amp;gt; Advanced features&#039;&#039; tick the &#039;Enable web services for mobile devices&#039; checkbox&lt;br /&gt;
# Click the button to save changes.&lt;br /&gt;
If your site uses a [https://en.wikipedia.org/wiki/Transport_Layer_Security SSL certificate], it must be a trusted certificate. For security reasons the app doesn&#039;t work with self-signed certificates.&lt;br /&gt;
&lt;br /&gt;
Please, verify that your certificate is valid via: https://www.geocerts.com/ssl_checker (you shouldn&#039;t see any warning).&lt;br /&gt;
&lt;br /&gt;
If your site has the /login directory protected (frequently done when using the Shibboleth authentication method), you must enable access to the login/token.php script.&lt;br /&gt;
===Frame embedding===&lt;br /&gt;
If your sites uses [https://en.wikipedia.org/wiki/ReCAPTCHA reCaptcha], Vimeo videos or custom menu items (as described bellow) you must enable the admin setting &amp;quot;Allow frame embedding&amp;quot; (allowframembedding). Please, note this is not necessary since Moodle 3.7&lt;br /&gt;
===Is your site behind a proxy, or load balancer or complex network infrastructure?===&lt;br /&gt;
In that case, you may need to configure the &amp;quot;Ignore reserver proxies&amp;quot; settings in Site administration &amp;gt; Administration &amp;gt; Server &amp;gt; HTTP&lt;br /&gt;
==Register your site on the Moodle Apps Portal==&lt;br /&gt;
We strongly recommend you to register your site for free on the Moodle Apps portal: https://apps.moodle.com&lt;br /&gt;
&lt;br /&gt;
You will be able to retrieve statistics like the number of active user devices receiving Push Notifications and upgrade to a Pro/Premium plan for enjoying exclusive features.&lt;br /&gt;
==Simplify user onboarding==&lt;br /&gt;
Upon opening the Moodle app, first-time users encounter a &amp;quot;Your site&amp;quot; field, where they have to input the URL of their Moodle site to access their courses. To ensure a smooth onboarding experience for new users, follow these steps:&lt;br /&gt;
# Enable the &#039;&#039;&#039;Site finder&#039;&#039;&#039; feature that allows users to find their Moodle site by name, eliminating the need to manually enter the site URL. To enable this feature, view [[Moodle app guide for admins#Have your site listed in the Moodle app site finder|Have your site listed in the Moodle app site finder]] below.&lt;br /&gt;
# Enable the &#039;&#039;&#039;QR login&#039;&#039;&#039; feature (view [[Moodle app guide for admins#QR Login|instructions]] below). This feature allows users to scan a QR code available on their Moodle profile to access their Moodle site directly from the app. &lt;br /&gt;
# For Android users and Moodle LMS 4.3 and later: Encourage users to install the Moodle app by following the &#039;&#039;&#039;Get the mobile app&#039;&#039;&#039; link at the bottom of any Moodle page (located within the &amp;quot;&#039;&#039;&#039;?&#039;&#039;&#039;&amp;quot; icon on the desktop version). When users install the app through this link, they will be automatically redirected to their site login screen, eliminating the need to manually enter the site URL.&lt;br /&gt;
# Alternatively, you can create a dedicated help page for the Moodle app. This help page should include a link to the Google Play version of the app and clearly indicate the site URL referrer. For example, if your Moodle site is mymoodlesite.com the link will be https://play.google.com/store/apps/details?id=com.moodle.moodlemobile&amp;amp;referrer=siteurl%3Dhttps%3A%2F%2Fmymoodlesite.com&lt;br /&gt;
Please note that options 3&amp;amp;4 are not compatible with Google Workspace accounts (the installation referrer will be ignored in that case).&lt;br /&gt;
==Have your site listed in the Moodle app site finder==&lt;br /&gt;
The Moodle apps site finder enables a user to easily find their Moodle site by entering the name (no need to enter the site URL)&lt;br /&gt;
===How can I have my site listed in the Moodle app site finder?===&lt;br /&gt;
Your site will be automatically listed in the site finder if:&lt;br /&gt;
* either your site is registered and listed with a link on [https://stats.moodle.org/sites/ Registered sites] and has over five hundred mobile users and you have been using the Moodle app for over a year&lt;br /&gt;
* or you have purchased a [https://moodle.com/app/ Pro or Premium Moodle app subscription].&lt;br /&gt;
You can arrange for your site to be listed in the site finder as follows:&lt;br /&gt;
* If your site is hosted by a Moodle Partner, please contact them to request for your site to be listed. &lt;br /&gt;
* If you have a MoodleCloud site, please log in to the Moodle Apps Portal where you will find an option to have your site listed.&lt;br /&gt;
Otherwise, to have your site listed in the site finder, you need to purchase a [https://moodle.com/app/ Pro or Premium Moodle app subscription] from the Moodle Apps Portal.&lt;br /&gt;
===I don’t want my site listed in the Moodle app site finder. How can I remove it?===&lt;br /&gt;
You can remove your site from the site finder as follows:&lt;br /&gt;
# Log in to the [https://apps.moodle.com/ Moodle Apps Portal]. (If you don&#039;t yet have an account, you can create one for free.)&lt;br /&gt;
# Go to ‘App customisation’ -&amp;gt; ‘Site Listing’ and uncheck the option ‘Visible’ then save changes. &lt;br /&gt;
Your site will then be immediately removed from the site finder.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can remove your site from the site finder by updating your site registration:&lt;br /&gt;
# Log in to your Moodle site as admin and go to ‘Site administration’ -&amp;gt; Registration.&lt;br /&gt;
# Change ‘Site listing’ to either ‘Do not list my site’ or ‘Only display my site name’.&lt;br /&gt;
Your site will then be removed from the site finder within 24 hours.&lt;br /&gt;
==Mobile authentication==&lt;br /&gt;
&lt;br /&gt;
===MFA===&lt;br /&gt;
The Moodle mobile app does not support MFA natively yet, however, you can redirect users to a browser to force the authentication process to behave exactly as Moodle LMS. You can do the previous via Site administration &amp;gt; Mobile authentication &amp;gt; Type of login and then select any of the options that mention browser.&lt;br /&gt;
&lt;br /&gt;
===SSO authentication method===&lt;br /&gt;
If your site uses a SSO authentication method (CAS, Shibboleth, LDAP SSO, OAuth...), then select via a browser window or via an embedded browser for &#039;Type of login&#039; (typeoflogin) in &#039;Mobile authentication&#039; in the Site administration. (This setting is provided for older pre-Moodle 3.2 sites via the [[Moodle Mobile additional features]] plugin.)&lt;br /&gt;
&lt;br /&gt;
The options &#039;browser window&#039; and &#039;embedded browser&#039; are very similar; the only difference is when redirecting the user to enter their credentials in the site, the site will be opened in the device&#039;s default browser (for browser window) or the site will be opened &amp;quot;embedded&amp;quot; in the mobile app (for embedded browser). The user experience is better in embedded browser, but not all the authentication plugins will work in embedded browser (for example, if JavaScript popups are required they must use the &#039;browser window&#039;). The admin should check whether both options work, and if so, choose &#039;embedded browser&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are using Google OAuth you will have to use the &#039;browser window&#039; method because Google recently blocked authentication via &#039;embedded browsers&#039;.&lt;br /&gt;
&lt;br /&gt;
If your organisation uses a custom branded app and &#039;Type of login&#039; is set to &#039;Via a browser window&#039; or &#039;Via embedded browser&#039;, then a URL scheme (forcedurlscheme) may be set. This will result in only the custom branded app working for the site: the official Moodle Mobile app will not work.&lt;br /&gt;
===QR Login===&lt;br /&gt;
Please note that this feature requires Moodle 3.9 and is only available if you are enjoying a [https://moodle.com/app/ Pro/Premium plan].&lt;br /&gt;
&lt;br /&gt;
As a site administrator, you can enable login via QR. Please go to Site administration &amp;gt; Mobile app &amp;gt; Mobile authentication and select &amp;quot;QR code with automatic login&amp;quot; in the &amp;quot;QR code access&amp;quot; setting&lt;br /&gt;
&lt;br /&gt;
Once enabled, your students will be able to login in the app by scanning a QR code available on their Moodle site profile.&lt;br /&gt;
===Biometric Login===&lt;br /&gt;
This feature is only available to Pro and [https://apps.moodle.com Premium plan customers].&lt;br /&gt;
&lt;br /&gt;
Biometric login allows your users to log in to your site via the Moodle App on Android and iOS devices using their fingerprint, face recognition or any other biometric option available on their mobile device. This makes the login process simpler, faster and more secure, and is specially useful if Autologout is enabled on your site.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enabling biometric login for your site&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can enable Biometric login as an authentication method through the Moodle Apps Portal, going to App customisation &amp;gt; Authentication &amp;gt; Biometric login, and then selecting “Enable biometric login”. Your users will then be able to choose whether they want to use Biometric login or not.&lt;br /&gt;
&lt;br /&gt;
For security reasons, users may be prompted to re-enter their credentials periodically. This interval is determined by the &#039;User created token duration&#039; (tokenduration) security setting, which is set to a default duration of three months. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setting up biometric login as a user&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To use biometric login in the Moodle App, users must have biometric authentication enabled in their own device&#039;s settings (e.g. FaceID or TouchID for iOs users, or Fingerprints for Android users).&lt;br /&gt;
&lt;br /&gt;
The first three times users log in to the app after you enable Biometric login, they will see a notification telling them that they can activate this new authentication method to access the app (provided that they have biometric authentication enabled in their device&#039;s settings).&lt;br /&gt;
&lt;br /&gt;
Users can activate and deactivate their biometric login any time in the Moodle App in User account &amp;gt; Preferences.&lt;br /&gt;
===Auto logout===&lt;br /&gt;
From Moodle LMS 4.3 onwards, you can enhance security by enforcing automatic logout for your users when they leave or close the app, or it goes to the background.&lt;br /&gt;
&lt;br /&gt;
You can even set your own custom re-authentication time, to suit your organisation&#039;s security requirements. &lt;br /&gt;
&lt;br /&gt;
To activate auto logout, go to Site administration &amp;gt; Mobile app &amp;gt; Mobile authentication.&lt;br /&gt;
&lt;br /&gt;
This feature is particularly effective when paired with Biometric login, since that streamlines the login process for your users.&lt;br /&gt;
&lt;br /&gt;
== Customise your app theme ==&lt;br /&gt;
The app can also retrieve your custom styles from your Moodle site. Since the app is a HTML5 app, you can safely apply any CSS, CSS2 and CSS3 style.&lt;br /&gt;
&lt;br /&gt;
Go to &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Mobile app &amp;gt; Mobile appearance&#039;&#039; and enter in the mobilecssurl field a valid URL pointing to a CSS file containing your custom styles.&lt;br /&gt;
&lt;br /&gt;
The CSS should be placed inside your Moodle installation (in your custom theme or inside a local plugin).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For example:&#039;&#039;&#039; &#039;&#039;https://mymoodlesite.com/theme/mytheme/style/mymobileapp.css&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Once the user is logged in the app, remote CSS files for applying your custom styles are regularly retrieved.&lt;br /&gt;
&lt;br /&gt;
Notice that on the first time a user opens the app, he will see the default &amp;quot;orange&amp;quot; style. Your custom styles will be applied once the user has added a site in the app.&lt;br /&gt;
&lt;br /&gt;
For further information, see the dev docs [https://docs.moodle.org/dev/Moodle%20Mobile%20Themes Moodle Mobile Themes].&lt;br /&gt;
&lt;br /&gt;
If you want your own custom branding for your organization, Moodle offers the The [https://moodle.com/branded-app Branded Moodle Mobile app] service, please visit https://moodle.com/app/ for more information.&lt;br /&gt;
== Moodle Mobile additional features plugin for old Moodle sites ==&lt;br /&gt;
For old Moodle sites it is recommended to install the [[Moodle Mobile additional features]] plugin.&lt;br /&gt;
== Notifications ==&lt;br /&gt;
You might find them annoying but push notifications keeps you and your users informed and updated on everything about the app. Moodle only send useful and important notifications such as new features or service disruptions.&lt;br /&gt;
&lt;br /&gt;
Enabling push notifications is easy! An administrator can enable it by connecting their Moodle site/s to our free Notifications server available (only) for registered Moodle sites. &lt;br /&gt;
&lt;br /&gt;
An access key can be obtained via &#039;&#039;Site administration &amp;gt; General &amp;gt; Messaging &amp;gt; Notification settings&#039;&#039;. Be sure the &#039;Mobile&#039; is enabled and then click the link to settings, on the next page select &#039;&#039;Request access key&#039;&#039;. (For Moodle site versions 3.5 and 3.6 an access key can be obtained via &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Message outputs &amp;gt; Manage message outputs&#039;&#039;. Then by clicking the link to the Mobile settings, on the next page select &#039;&#039;Request access key&#039;&#039;.)&lt;br /&gt;
&lt;br /&gt;
The full guide on enabling push notifications can be found here: [[Mobile app notifications]]&lt;br /&gt;
== App banners ==&lt;br /&gt;
[[File:app banner.png|thumb|Moodle Mobile app banner]]&lt;br /&gt;
App banners let your users know a mobile app is available for the site. App banners are only displayed when accessing the site using a mobile browser.&lt;br /&gt;
&lt;br /&gt;
App banners are disabled by default. They can be enabled in &#039;Mobile appearance&#039; in the Site administration.&lt;br /&gt;
&lt;br /&gt;
If you are using a custom mobile app, you must provide the unique identifier for the iOS and Android app; if you use the Moodle Mobile app, the settings may be left as default.&lt;br /&gt;
&lt;br /&gt;
Please, notice the following:&lt;br /&gt;
* App banners for iOS devices (iPhone, iPad or iPod) are only shown when accessing the site using the Safari browser and the mobile app is not installed on the device yet.&lt;br /&gt;
* App banners for Android devices are only shown in very recent Chrome browser versions and when the app is not installed. Note also that Chrome uses an engagement heuristic that will display the banner only under certain conditions, like interactions with the site, the last time you interacted with it, etc. You can remove the engagement restriction check by disabling this special chrome flag: chrome://flags/#bypass-app-banner-engagement-checks. Please note also that certain custom Android versions (such as Samsung and Huawei ones) do not always support this feature&lt;br /&gt;
&lt;br /&gt;
==&#039;Get the mobile app&#039; link==&lt;br /&gt;
In Moodle 3.4 onwards, the link &#039;Get the mobile app&#039; in the footer of each page on the site encourages users to make use of the mobile app. &lt;br /&gt;
&lt;br /&gt;
By default, the link is https://download.moodle.org/mobile however the setting &#039;App download page&#039; can be changed e.g. for sites using a branded mobile app.&lt;br /&gt;
&lt;br /&gt;
If mobile services are not enabled for the site, then the &#039;Get the mobile app&#039; link is not displayed. &lt;br /&gt;
&lt;br /&gt;
To prevent the &#039;Get the mobile app&#039; link being displayed, simply remove the URL from the &#039;App download page&#039; setting and save changes.&lt;br /&gt;
== Configuring the app from your site ==&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Please notice that the type and number of features that you can customise depend on your Moodle Apps plan, you can register for free on https://apps.moodle.com to check the different plans.&lt;br /&gt;
&lt;br /&gt;
In Moodle 3.3 onwards, or with the [[Moodle Mobile additional features]] plugin, settings in the Site administration enable admins to configure the app.&lt;br /&gt;
* In Moodle 3.3 onwards go to &#039;&#039;Site administration &amp;gt; Mobile features&#039;&#039;&lt;br /&gt;
* In sites with the Moodle Mobile additional features plugin installed, go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Local plugins &amp;gt; Mobile additional features&#039;&#039;&lt;br /&gt;
===Force log out===&lt;br /&gt;
Replace the Change site option to &amp;quot;Log out&amp;quot; so that users must enter their credentials on their next access. This is useful for custom mobile apps, as there is no reason for users wanting to switch to a different site.&lt;br /&gt;
===Disabled features===&lt;br /&gt;
The mobile app may be simplified by removing unwanted features. Some items may already be not available in the app because they are not enabled on your site.&lt;br /&gt;
&lt;br /&gt;
Options to remove include:&lt;br /&gt;
&lt;br /&gt;
* Offline use&lt;br /&gt;
* Blocks (Note that from &#039;&#039;&#039;Moodle 4.3.1&#039;&#039;&#039; the Global search and Search forums blocks can be removed.)&lt;br /&gt;
* Comments&lt;br /&gt;
* Ratings&lt;br /&gt;
* Tags&lt;br /&gt;
* Create new account&lt;br /&gt;
* Responsive menu items &lt;br /&gt;
* Main menu&lt;br /&gt;
** Site home&lt;br /&gt;
** My courses&lt;br /&gt;
** Dashboard&lt;br /&gt;
** Calendar&lt;br /&gt;
** Notifications&lt;br /&gt;
** Messages&lt;br /&gt;
** Grades&lt;br /&gt;
** My learning plans&lt;br /&gt;
** Blog&lt;br /&gt;
** Files&lt;br /&gt;
** Web page&lt;br /&gt;
** Help&lt;br /&gt;
* Course&lt;br /&gt;
** Blocks&lt;br /&gt;
** Blog&lt;br /&gt;
** Search&lt;br /&gt;
** Competencies&lt;br /&gt;
** Participants&lt;br /&gt;
** Grades&lt;br /&gt;
** Course completion&lt;br /&gt;
** Notes&lt;br /&gt;
** Download course (new in 3.5)&lt;br /&gt;
** Download courses (new in 3.5)&lt;br /&gt;
* User&lt;br /&gt;
** Blog&lt;br /&gt;
** Badges&lt;br /&gt;
** Competencies&lt;br /&gt;
** Course completion&lt;br /&gt;
** Grades&lt;br /&gt;
** Send message&lt;br /&gt;
** Add contact&lt;br /&gt;
** Block contact&lt;br /&gt;
** Add a new note&lt;br /&gt;
** User picture&lt;br /&gt;
* Files&lt;br /&gt;
** Private files&lt;br /&gt;
** Ste files&lt;br /&gt;
** Upload&lt;br /&gt;
* Modules (Each module can be disabled separately)&lt;br /&gt;
* Blocks (Each block available in the app can be disabled separately)&lt;br /&gt;
&lt;br /&gt;
===Custom menu items===&lt;br /&gt;
Additional items can be added to the app main menu (the more menu), such as a link to a different grade book.&lt;br /&gt;
&lt;br /&gt;
In order to do so go to &amp;quot;Site administration &amp;gt; Mobile features &amp;gt; Custom menu items&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Each custom menu item should have the format: item text, link URL, link-opening method and language code (optional, for displaying the item to users of the specified language only), icon (optional, the name of the icon from https://ionicons.com) separated by pipe characters.&lt;br /&gt;
&lt;br /&gt;
Possible link-opening methods are:&lt;br /&gt;
* app - for linking to an activity supported by the app i.e. almost all activity types, as listed in [[Moodle Mobile features]].&lt;br /&gt;
* inappbrowser - for linking to external URLs or site functionalities not supported by the app. The link will open in a browser inside the app overlaying the complete screen.&lt;br /&gt;
* browser - as for inappbrowser except that the link will instead open in the device default browser outside the app.&lt;br /&gt;
* embedded - as for inappbrowser except that the link will instead open in an iframe in a new page in the app. (For this option you may need to enable the admin setting &amp;quot;Allow frame embedding&amp;quot; (allowframembedding)&lt;br /&gt;
Tip: If you add a custom menu item and save changes, then it doesn&#039;t appear in the app main menu, double check that the item is correctly formatted.&lt;br /&gt;
&lt;br /&gt;
Please, note that if custom menu items have the same URL, same link-opening method, and same language only the first custom menu item will be shown.&lt;br /&gt;
&lt;br /&gt;
Please, note that if the app is using a language not indicated in the previous list, the first language in the list will be used. (So if you have a custom menu item in English (en) and French (fr), and the app is using Spanish the user will still see that custom menu item in English)&lt;br /&gt;
&lt;br /&gt;
If you want options tied to a language, you can append _only to the language code, for example:&lt;br /&gt;
en_only&lt;br /&gt;
es_only, will display the custom menu item only when the app language is English or Spanish.&lt;br /&gt;
&lt;br /&gt;
Example of a menu item (it will display a home icon followed by Academy information linking to the URL indicated):&lt;br /&gt;
 Academy information|https://yoursite.com/mod/page/view.php?id=X |app|en|home&lt;br /&gt;
&lt;br /&gt;
===Responsive menu items===&lt;br /&gt;
From 3.7 onwards menu items on bottom tabs are moved to the side of the screen on big screens. Also the number of items displayed on the menu may vary:&lt;br /&gt;
* On small screens (usually phones) from 2 to 5 items will be displayed depending on the size of the screen.&lt;br /&gt;
* On big screens (usually tablets an desktop version) more than 2 items will be displayed without limit.&lt;br /&gt;
If &#039;&#039;&#039;Responsive menu items&#039;&#039;&#039; is selected in Disabled features items will be displayed in side of bottom anyway but 5 items will be displayed in all cases without depending on the size of the screen.&lt;br /&gt;
===Custom language strings ===&lt;br /&gt;
Words and phrases displayed in the app can be customised via the &amp;quot;Site administration &amp;gt; Mobile app features &amp;gt; Custom language strings&amp;quot; (customlangstrings) setting.&lt;br /&gt;
&lt;br /&gt;
Enter each custom language string on a new line with format: string identifier, custom language string and language code, separated by pipe characters. For example:&lt;br /&gt;
 core.user.student|Learner|en&lt;br /&gt;
 core.user.student|Aprendiz|es&lt;br /&gt;
The complete list of string identifiers is listed in https://latest.apps.moodledemo.net/assets/lang/en.json&lt;br /&gt;
&lt;br /&gt;
The string identifier is before the colon. &lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;core.user.student&amp;quot;: &amp;quot;Student&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
means that the string &amp;quot;Student&amp;quot; has string identifier &amp;quot;core.user.student&amp;quot;.&lt;br /&gt;
==Analytics and stats==&lt;br /&gt;
&lt;br /&gt;
===Usage statistics from your Moodle site===&lt;br /&gt;
&lt;br /&gt;
To retrieve information about the Moodle app usage, site administrators and teachers can check the system, course or activity logs.&lt;br /&gt;
&lt;br /&gt;
Among the log filters, there is a field called &amp;quot;All sources&amp;quot; with an option &amp;quot;Web Service/ws&amp;quot; that can be used to filter the entry logs generated by the mobile application.&lt;br /&gt;
&lt;br /&gt;
You can compare the number of log entries generated by the &amp;quot;Web&amp;quot; versus &amp;quot;Web Service&amp;quot; (mobile app) to have an overall idea about how your users use the platform.&lt;br /&gt;
&lt;br /&gt;
Please, notice that if you have custom &amp;quot;Web Services&amp;quot; or an installed plugin that uses Web Services, you will also see entries for them under the same filter.&lt;br /&gt;
&lt;br /&gt;
If you have access to the site database, the table &amp;quot;external_tokens&amp;quot; has a &amp;quot;lastaccess&amp;quot; timestamp field that could be used to obtain active users of the app every day.&lt;br /&gt;
&lt;br /&gt;
===Integration with Matomo analytics===&lt;br /&gt;
Note: This feature is available for [https://apps.moodle.com Premium app plans and Branded Moodle Apps]. To use this integration, you will need to have your own instance of Matomo. &lt;br /&gt;
&lt;br /&gt;
Matomo is an open source web analytics tool that helps you monitor traffic to your Moodle site, including app activity. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Connecting to your Matomo instance in the Apps portal&#039;&#039;&#039;&lt;br /&gt;
[[File:Captura de pantalla 2023-11-14 a las 12.03.36.png|thumb|Moodle App Matomo Integration set up]]&lt;br /&gt;
To use Matomo to track app activity on your Moodle site, you will need to have your own instance of Matomo analytics, and to add your Moodle site as one of your measurable websites (see instructions on [https://matomo.org/faq/how-to/create-and-manage-websites/ Matomo’s website]). Then, follow these steps:&lt;br /&gt;
# Log in to the [https://apps.moodle.com Apps portal]. &lt;br /&gt;
# Go to &#039;&#039;&#039;App customisation&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;Analytics&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;Matomo analytics&#039;&#039;&#039;.&lt;br /&gt;
# Check &#039;&#039;&#039;Track app activity&#039;&#039;&#039;.&lt;br /&gt;
# Add your &#039;&#039;&#039;Matomo URL&#039;&#039;&#039; - that&#039;s the URL of your Matomo instance, for example https://yoursite.matomo.cloud.&lt;br /&gt;
# Add the &#039;&#039;&#039;Website ID&#039;&#039;&#039; associated with your Moodle site in Matomo. To obtain this ID:&lt;br /&gt;
## Log in to your Matomo account.&lt;br /&gt;
## Go to &#039;&#039;&#039;Administration&#039;&#039;&#039; using the gear icon on the right side of the top navigation bar.&lt;br /&gt;
## On the left-hand panel, select &#039;&#039;&#039;Websites&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;Manage&#039;&#039;&#039;.&lt;br /&gt;
## In your list of measurables, find the Moodle site in which you want to track app activity. The &#039;&#039;&#039;ID&#039;&#039;&#039; of the measurable is the &#039;&#039;&#039;Website ID&#039;&#039;&#039; you need to enter in the apps portal.&lt;br /&gt;
# Click &#039;&#039;&#039;Save changes&#039;&#039;&#039; to establish the connection and start tracking app activity.&lt;br /&gt;
# If you&#039;d like to stop tracking at any time, uncheck &#039;&#039;&#039;Track app activity&#039;&#039;&#039; and then save changes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To filter Matomo data to isolate mobile app usage from Moodle site interactions, follow these steps:&lt;br /&gt;
[[File:Captura de pantalla 2023-11-14 a las 12.05.05.png|thumb|Moodle App Matomo referrer set-up]]&lt;br /&gt;
# Log in to your Matomo account.&lt;br /&gt;
# Click &#039;&#039;&#039;All visits&#039;&#039;&#039; at the top of the page&lt;br /&gt;
# Create a custom segment by applying this configuration: “Referrer URL” “is” “https://moodlemobile”&lt;br /&gt;
# To only see Moodle site interactions, do the following: “Referrer URL” “is not” “https://moodlemobile”&lt;br /&gt;
&lt;br /&gt;
Please notice that the integration with Matomo does not work offline.&lt;br /&gt;
&lt;br /&gt;
===Google Analytics for Firebase===&lt;br /&gt;
Only available when purchasing a [https://moodle.com/branded-app/ Branded Moodle App]. &lt;br /&gt;
&lt;br /&gt;
Google Analytics for Firebase is a free tool that provides valuable insights and data about how users interact with mobile apps.&lt;br /&gt;
&lt;br /&gt;
Please notice that the integration with Google Analytics for Firebase does not work offline.&lt;br /&gt;
&lt;br /&gt;
===Google Play and Apple App Store statistics===&lt;br /&gt;
&lt;br /&gt;
If you have a custom mobile application, you can access statistics about app downloads and user engagement such as weekly active users and devices.&lt;br /&gt;
&lt;br /&gt;
Google play:&lt;br /&gt;
# Go to Google Play console: https://play.google.com/console&lt;br /&gt;
# Select your app from the list.&lt;br /&gt;
# Navigate to specific tabs, such as &amp;quot;Statistics&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apple App Store:&lt;br /&gt;
# Log in to App Store Connect: https://appstoreconnect.apple.com/&lt;br /&gt;
# Go to &amp;quot;App Analytics&amp;quot; from the dashboard.&lt;br /&gt;
&lt;br /&gt;
==Web services token duration==&lt;br /&gt;
From Moodle 3.4 onwards, an admin can set how long a web services token created by a user (for example via the mobile app) is valid. (In previous versions of Moodle a token was valid for 3 months.)&lt;br /&gt;
&lt;br /&gt;
The setting that dictates the previous &#039;User created token duration&#039; (tokenduration) can be found under the Security section.&lt;br /&gt;
==App&#039;s cache==&lt;br /&gt;
The app caches WebService requests to decrease data usage and increase the app&#039;s speed. When the app needs to get some data from Moodle, it will use a cached request as long as it isn&#039;t expired.&lt;br /&gt;
&lt;br /&gt;
This cache was improved in Moodle App 3.7.0, now there are several cache times depending on the WS being called. This means that some requests will expire more often than others. Also, if the user isn&#039;t using a WiFi connection, the expiration time will also be longer to decrease the data usage. These cache times cannot be configured using a Moodle setting.&lt;br /&gt;
==See also==&lt;br /&gt;
* [https://moodle.academy/course/view.php?id=100 Moodle App Configuration]- a free self-paced course for admins on Moodle Academy.&lt;br /&gt;
* [[Moodle Mobile FAQ]] for other administration-related mobile app questions.&lt;br /&gt;
* [[Moodle app security]]&lt;br /&gt;
* [https://docs.moodle.org/dev/Moodle%20Mobile%20debugging%20WS%20requests dev:Moodle Mobile debugging WS requests] - a guide to helping you find and report problems with the Moodle Mobile app on your site&lt;br /&gt;
* [https://docs.moodle.org/dev/%20Moodle%20Mobile%20Roadmap dev: Moodle Mobile Roadmap]&lt;br /&gt;
* [https://docs.moodle.org/dev/Moodle%20Mobile%20release%20notes dev:Moodle Mobile release notes]&lt;br /&gt;
* [https://docs.moodle.org/dev/Moodle%20Mobile Moodle Mobile developer docs]&lt;br /&gt;
* [[Moodle Mobile availability plugin]]&lt;br /&gt;
* [[Mobile web services]]&lt;br /&gt;
[https://docs.moodle.org/fr/ Guide mobile pour administrateurs]&lt;br /&gt;
[https://docs.moodle.org/es/Moodle app guía para administradores]&lt;br /&gt;
[https://docs.moodle.org/de/Moodle App - Anleitung für Administrator/innen]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_security&amp;diff=152182</id>
		<title>Moodle app security</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_security&amp;diff=152182"/>
		<updated>2025-04-30T08:47:27Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Warnings typically raised by static code analysis tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
&lt;br /&gt;
The Moodle app is a hybrid app (uses web-technologies) developed on top of a well-tested widely used framework called &amp;quot;Cordova&amp;quot; that provides a robust container for HTML apps.&lt;br /&gt;
&lt;br /&gt;
Security is very important to us, this is why we follow the Cordova and Moodle security recommendations:&lt;br /&gt;
* Cordova: https://cordova.apache.org/docs/en/latest/guide/appdev/security/&lt;br /&gt;
* Moodle: https://docs.moodle.org/dev/Security (when developing Web Services)&lt;br /&gt;
&lt;br /&gt;
== How we approach security ==&lt;br /&gt;
&lt;br /&gt;
* Login and authorisation&lt;br /&gt;
** Authorisation is done via temporary access tokens. The duration of the access tokens can be configured via Moodle settings.&lt;br /&gt;
** Single Sign-On (or auto-login) from the app to the site is done using a special private token (that is obtained and stored when the user log-in with the app)&lt;br /&gt;
** Single Sign-On (or auto-login) from the app to the site has several additional restrictions (like limiting it in only several times per hour)&lt;br /&gt;
** QR-Login is done using temporary tokens that require the user to be in the same network (IP address) and it is limited to 10 minutes time&lt;br /&gt;
** For retrieving files from the server (images or other assets), a different non-authentication token is used.&lt;br /&gt;
&lt;br /&gt;
* Permissions&lt;br /&gt;
** The app only has access to a subset of Moodle functionalities (available through the Moodle App Service)&lt;br /&gt;
** Privileges escalation is not possible via the Web Services layer since all the operations are done in a non-privileged way, permissions are checked based on the currently authenticated user.&lt;br /&gt;
** Even if a temporary access token for an admin (or privileged user) was hijacked, it wouldn&#039;t be possible for the attacker to access to site administration functionality via the Moodle site.&lt;br /&gt;
&lt;br /&gt;
Because the app is a Webservices client we recommend to enable it only under https and use the following settings to enforce security like:&lt;br /&gt;
* Enable only certain roles to be able to access via the app via system capabilities (avoid site administrators)&lt;br /&gt;
* Use Moodle security settings to reduce the expiration time of WebService access tokens (so the user has to authenticate again)&lt;br /&gt;
* Apart from that, the Cordova framework enforces security adding restrictions like avoiding connecting to sites running non-trusted certificates.&lt;br /&gt;
&lt;br /&gt;
== What is the Moodle app security issues process? ==&lt;br /&gt;
&lt;br /&gt;
* We follow the standard Moodle security process: https://docs.moodle.org/dev/Moodle_security_procedures&lt;br /&gt;
* There is only one relevant difference: security patches are applied immediately in the next app release or in an emergency release (depending the risks attached to the issue)&lt;br /&gt;
&lt;br /&gt;
== Shared responsibility ==&lt;br /&gt;
&lt;br /&gt;
* The organisation hosting the Moodle site is also responsible for providing secure access to the Moodle site, the site should be configured to use HTTPS (secure connection) so the connection is app-to-site encrypted.&lt;br /&gt;
* Apart from the previous, the Moodle site administrator can enable additional security measures such as enforcing end-to-end encryption for Push notifications via the site administration notification settings.&lt;br /&gt;
&lt;br /&gt;
== Do you run security/penetration/pentest or static code analysis tests? ==&lt;br /&gt;
&lt;br /&gt;
We do occasionally receive automated vulnerability reports of this nature. The issue with automated tools is that they usually output generic results that indicate where an exploit may be possible, which means the results often contain many false positives.&lt;br /&gt;
&lt;br /&gt;
As mentioned above our app is built on top of Cordova, we rely on the Cordova framework developers to detect any native code issue. &lt;br /&gt;
&lt;br /&gt;
You can do a search in the Cordova project tracker to see that several runs with the Static Code Analysis Veracode tool created issues that have been already solved, see: https://issues.apache.org/jira/issues/?jql=project%20%3D%20CB%20AND%20text%20~%20%22veracode%22%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC&lt;br /&gt;
&lt;br /&gt;
Unfortunately, those Veracode runs are not publicly available because most of the time are run by external parties using the framework.&lt;br /&gt;
&lt;br /&gt;
Please, note also that there are CVE codes for Cordova security issues: https://www.cvedetails.com/product/27153/Apache-Cordova.html?vendor_id=4&lt;br /&gt;
&lt;br /&gt;
== Warnings typically raised by static code analysis tools ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Lack of Jailbreak Detection&#039;&#039;&#039;  The Moodle app does not include jailbreak or root detection. This is due to the lack of official APIs from Google or Apple, and our testing of existing non-official plugins to support it showed a high rate of false positives, particularly on Android with budget devices or recent iOS updates. Notably, the app securely stores authentication tokens in the keystore/keychain, not in the session. The session token is used only for temporary content retrieval and has limited validity, ensuring that even on compromised devices, attackers cannot extract sensitive data to perform impersonation attacks.&lt;br /&gt;
* &#039;&#039;&#039;No Certificate Pinning&#039;&#039;&#039;  The Moodle app does not support certificate pinning because it is designed to connect to any Moodle site globally (there are hundreds of thousands of sites, each one with its own URL, using Moodle), whether hosted on HTTPS, HTTP, or local networks. Additionally, the Cordova framework we rely on does not natively support certificate pinning.&lt;br /&gt;
* &#039;&#039;&#039;Lack of Encryption for Manifest Files&#039;&#039;&#039;  The app does not include sensitive keys or certificates in publicly accessible files, eliminating the need for encryption of manifest files. The Firebase certificates available in the app’s GitHub repository are bound to the app’s fingerprint, ensuring they cannot be exploited.&lt;br /&gt;
* &#039;&#039;&#039;Static Web Service Authentication Tokens (Session Fixation)&#039;&#039;&#039;  Web service tokens are not regenerated with each login by design. This aligns with how the Moodle Web Services API operates, allowing users to connect across multiple devices (e.g., phone and tablet) without invalidating tokens. Regenerating tokens would restrict multi-device access.&lt;br /&gt;
* &#039;&#039;&#039;Lack of Code Obfuscation&#039;&#039;&#039;  The Moodle app code is open source. Since no keys or private data are generated during compilation, code obfuscation is not necessary.&lt;br /&gt;
* &#039;&#039;&#039;Improper Session Timeout &amp;amp; Logout Function&#039;&#039;&#039;  The Moodle app follows a common approach used by most mobile apps on Android and iOS, where users are not prompted to log in repeatedly after short periods of inactivity. Mobile devices provide adequate protection through features such as automatic locking when inactive.  However, Moodle site administrators have full control over how the app handles session timeouts and logout behavior. They can:&lt;br /&gt;
** Define how the logout function works (soft logout or complete session termination).&lt;br /&gt;
** Set a custom session timeout duration.&lt;br /&gt;
** Configure the duration of the Web Service authentication token.&lt;br /&gt;
&lt;br /&gt;
These configurations can be managed through:&lt;br /&gt;
** &#039;&#039;&#039;Site administration &amp;gt; Mobile app authentication settings&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;Site administration &amp;gt; Security settings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[es:Seguridad de Moodle app]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Creating_mobile-friendly_courses&amp;diff=151140</id>
		<title>Creating mobile-friendly courses</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Creating_mobile-friendly_courses&amp;diff=151140"/>
		<updated>2025-03-06T13:04:10Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
As more and more students access courses from their smartphones, tablets or other mobile devices, it is increasingly important to ensure your courses are mobile-friendly.&lt;br /&gt;
&lt;br /&gt;
Encouraging students to install the [https://download.moodle.org/mobile/ official Moodle mobile app] is one way to improve their learning experience. Below are some suggestions for optimising your course materials for students both using the app and accessing Moodle from mobile devices.&lt;br /&gt;
==Setting up your course==&lt;br /&gt;
*Custom sections or weekly course format is best suited to mobile devices. In topics format, the first section or the highlighted section is shown by default in the app. In weekly format, the current week is shown.&lt;br /&gt;
*Don&#039;t use stealth activities or direct links to activities (the links will work but is not the best experience for mobile).&lt;br /&gt;
*Blocks are collapsed by default and can be expanded by clicking the arrow-like tab on the right.&lt;br /&gt;
*If you have a mix of students accessing the course on mobile and desktop, consider asking your admin to install the [[Moodle Mobile availability plugin]] which restricts items to desktop or mobile users.&lt;br /&gt;
&lt;br /&gt;
==Course content==&lt;br /&gt;
*Use responsive HTML in pages.&lt;br /&gt;
*Use a [[Page]] or [[Book]] instead of downloadable documents where possible.&lt;br /&gt;
*Use a [[Page]] or [[Book]] for videos instead of adding them in [[Text and media area|Text and media area resources]], avoid embedding more than one video in the same page.&lt;br /&gt;
*Avoid uploading many documents or having numerous, text heavy pages. Think more in terms of short &amp;quot;information-bytes&amp;quot;.&lt;br /&gt;
*If you include YouTube videos, keep them short and consider providing them for download and offline viewing in a [[Folder resource|folder]]. Not all video formats are supported so add them in different formats. (MP4 is probably the most widely accepted format.)&lt;br /&gt;
* For YouTube or Vimeo videos, you may use Bootstrap responsive classes: https://getbootstrap.com/docs/4.0/utilities/embed/, for example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;div class=&amp;quot;embed-responsive&amp;quot;&amp;gt;&amp;lt;video...&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Note that drag and drop questions behave differently in the app. You can&#039;t drag images, you need to tap to select and tap to drop.&lt;br /&gt;
*Note that if you add YouTube video links or map links as URL resources, they will open automatically in the app.&lt;br /&gt;
{|&lt;br /&gt;
| [[File:moodlemobile_short_text_intro.png|thumb|Short text for label]]&lt;br /&gt;
| [[File:moodlemobile_responsive_html.png|thumb|Responsive HTML]]&lt;br /&gt;
| [[File:moodlemobile_youtube_maps_links.png|thumb|Map link]]&lt;br /&gt;
|}&lt;br /&gt;
* Use only plugins with mobile app support so they can be accessed via the mobile app - see [https://moodle.org/plugins/browse.php?list=award&amp;amp;id=6 Moodle plugins directory: Award: mobile app support].&lt;br /&gt;
* If you want to include large audio files in your course, consider including them embedded in a label or page rather than as a file resource. The reason is that embedded files will play even if the screen is locked but files won&#039;t play with the screen locked.&lt;br /&gt;
* Avoid relative URLs such as ../mod/page/views.php?id=X as the app won&#039;t be able to guess the proper URL, if it is necessary to use URLs without domain, please use absolute URLs such as /mod/page/views.php?id=X&lt;br /&gt;
&lt;br /&gt;
===Media download for offline usage===&lt;br /&gt;
To enable media files, such as video, to be automatically downloaded when viewed.&lt;br /&gt;
* The file must be uploaded to the course, rather than being linked to (from YouTube, Vimeo etc.)&lt;br /&gt;
* The file must be small - less than 2MB for 3G users or less than 20MB for WiFi users&lt;br /&gt;
When a page containing the video is viewed (without playing the video), the file will then be downloaded.&lt;br /&gt;
&lt;br /&gt;
When using Moodle Mobile 3.1 or later with a WiFi connection, when the video is played, the file will be downloaded in the background. The next time the video is played, the downloaded file will be used.&lt;br /&gt;
&lt;br /&gt;
Please note that if the user did a full download of the courses, the files will be downloaded regardless its size.&lt;br /&gt;
&lt;br /&gt;
===Offline activities===&lt;br /&gt;
All the supported activities work offline, although some require specific settings like the lesson and quiz module, you can find bellow additional information:&lt;br /&gt;
* [[Moodle Mobile quiz offline attempts]] &lt;br /&gt;
* [[Moodle app H5P support#Working offline|Moodle H5P]]&lt;br /&gt;
* [[Moodle app SCORM player]]&lt;br /&gt;
=== Things to avoid===&lt;br /&gt;
Some activities are not yet fully supported by the mobile app, so find alternatives. See [[Moodle Mobile SCORM player]] for things to avoid in SCORM packages.&lt;br /&gt;
&lt;br /&gt;
You can find the list of activities supported by the app in the [[Moodle Mobile features]] page.&lt;br /&gt;
&lt;br /&gt;
==Use the latest stable version of Moodle==&lt;br /&gt;
As indicated in [[Moodle Mobile features]] some features are only available in recent Moodle versions.&lt;br /&gt;
&lt;br /&gt;
It is recommended to use the latest stable version or, if is not possible to upgrade your site, install the [[Moodle Mobile additional features]] plugin.&lt;br /&gt;
==Notifications and messages==&lt;br /&gt;
Encourage your students to enable mobile notifications so they are alerted about calendar events, forum posts, messages, assignment submissions and so on. Find out more in [[Mobile app notifications]].&lt;br /&gt;
&lt;br /&gt;
You can also enable mobile notifications for all the users by default via the [[Messaging settings]] default message outputs. Students can disable Mobile notifications within the app.&lt;br /&gt;
==Mobile device considerations==&lt;br /&gt;
The app works better on devices running&lt;br /&gt;
* Android 5.1 onwards&lt;br /&gt;
* iOs 11 onwards&lt;br /&gt;
In old devices you may find problems related to:&lt;br /&gt;
* User interface&lt;br /&gt;
* Connection problems (specifically when connecting to sites using https certificates)&lt;br /&gt;
* Slowness &lt;br /&gt;
The first version of the app was supported in Windows Phone and Windows 7. This version is not supported any more and it was withdrawn from the Windows Store. Its usage is not advised.&lt;br /&gt;
&lt;br /&gt;
==Links to open the Moodle app==&lt;br /&gt;
If required, links which open the Moodle app may be provided in the course (for users browsing the site using a mobile device with the app installed).&lt;br /&gt;
&lt;br /&gt;
Links are of the form &amp;lt;code&amp;gt;moodlemobile://https://username@domain.com?token=TOKEN&amp;amp;privatetoken=PRIVATETOKEN&amp;amp;redirect=http://domain.com/course/view.php?id=2&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Please notice that this kind of links are only supported in Moodle app 3.7.0 onwards. If your app has an older version you&#039;ll have to use the old format: &amp;lt;code&amp;gt;moodlemobile://link=https://yourmoodlesite.org/mod/...&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For more information about this, please read [https://docs.moodle.org/dev/Open_the_Moodle_app_from_another_app Open the Moodle app from another app].&lt;br /&gt;
==Learn more==&lt;br /&gt;
* Free course on Moodle Academy [https://moodle.academy/enrol/index.php?id=100 Moodle App configuration]&lt;br /&gt;
* Forum post: [https://moodle.org/mod/forum/discuss.php?d=349160 Try the Moodle Mobile app with a mobile-friendly course].&lt;br /&gt;
* [https://docs.moodle.org/dev/Creating_mobile_question_types How to make third party question types work in Mobile] documentation for developers&lt;br /&gt;
[[de:Moodle Mobile - Websites optimieren]]&lt;br /&gt;
[[es:Crear sitios amistosos para Moodle Mobile]]&lt;br /&gt;
[[fr:Créer des cours pour appareils mobiles]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_FAQ&amp;diff=151137</id>
		<title>Moodle app FAQ</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_FAQ&amp;diff=151137"/>
		<updated>2025-03-05T13:44:23Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Embedded content is not working */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
==Students==&lt;br /&gt;
===How can I log in?===&lt;br /&gt;
To log in to your Moodle site with the Moodle App, you need the URL (web address) of the Moodle site that you’re trying to access. If your organisation has Search enabled, you can try searching by the name of your organisation or eLearning site.&lt;br /&gt;
&lt;br /&gt;
If your organisation allows you to log in via QR code, you’ll find the QR code at the bottom of your user profile on your Moodle site. You just need to press “Scan QR code” on the app, scan the QR code on your profile and you’ll be logged in automatically.&lt;br /&gt;
&lt;br /&gt;
If your organisation allows you to log in using face recognition or fingerprint, you can activate this in the App, going to User account &amp;gt; Preferences. You’ll need to have biometric authentication enabled in your own device’s settings. &lt;br /&gt;
===Who can I contact for help with the app?===&lt;br /&gt;
If you’re a student and need help with issues related to logging in, registering to a Moodle site or trouble connecting to the app, you should contact your school or learning organisation. For example, one of your teachers, or the person who takes care of Moodle.&lt;br /&gt;
Moodle HQ make the Moodle software and the Moodle app, but they don’t manage nor have access to your Moodle site or your user data.&lt;br /&gt;
===How can I get the Moodle app?===&lt;br /&gt;
You can download the Moodle App for free from [https://play.google.com/store/apps/details?id=com.moodle.moodlemobile Google Play] and the Apple [https://itunes.apple.com/app/moodle-mobile/id633359593?mt=8 App Store]. You will find it by searching “Moodle”, and the author/owner is “Moodle Pty Ltd”.&lt;br /&gt;
If you are unable to download the app from Google play, please visit [https://download.moodle.org/mobile/ Moodle app downloads]&lt;br /&gt;
===I can&#039;t get the app to work. ===&lt;br /&gt;
To ensure that the Moodle app functions properly, please double-check that you have correctly entered the URL address of the Moodle site you are using (please visit [https://docs.moodle.org/en/Moodle_app_FAQ#I_can%E2%80%99t_find_my_Moodle_site_in_the_app. I can’t find my Moodle site in the app]). If you are experiencing difficulties connecting to your site, please contact the person or team who takes care of Moodle in your school or learning organisation. Please note the app only works with Moodle sites that have been set up to allow it, and that are running on at least Moodle 3.5.&lt;br /&gt;
&lt;br /&gt;
===I can’t find my Moodle site in the app. ===&lt;br /&gt;
To find your Moodle site on the app login screen, try searching for the name of your school or learning organisation.&lt;br /&gt;
&lt;br /&gt;
If your school or organisation doesn’t appear in the search, you can try searching by your Moodle site URL address instead. If you don’t know the address of your Moodle site, here’s how you can find it:&lt;br /&gt;
# Open a web browser (like Chrome or Safari) and go to your school’s Moodle site login page.&lt;br /&gt;
# At the top of the page in the address bar, you&#039;ll see the URL address of your Moodle site, e.g. “campus.example.edu”. [[File:FAQ I cant find my site 1.png|alt=URL|thumb|none|&#039;&#039;campus.example.edu&#039;&#039;]]&lt;br /&gt;
# Copy the URL (don’t copy the /login nor what comes after), paste it into Your site in the app, then select Connect to your site. [[File:FAQ I cant find my site 2.png|alt=Adding an URL to the app|thumb|none|Adding an URL to the app]]&lt;br /&gt;
# Now you can log in to your site with your username and password.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you tried searching by URL address and still can’t find your Moodle site, please get in touch with the person who takes care of Moodle in your school or learning organisation.&lt;br /&gt;
===I can’t log in with the app===&lt;br /&gt;
To log in to your Moodle site using the app, you first need to connect to your school’s Moodle site (view [[I can’t find my Moodle site in the app]] if you can’t find your site).&lt;br /&gt;
&lt;br /&gt;
Once you’ve connected to your Moodle site, you should be able to log in with your usual username and password.&lt;br /&gt;
&lt;br /&gt;
If you forgot your username or password, select the option &#039;&#039;&#039;Forgotten your username or password?&#039;&#039;&#039;. If you still have trouble logging in or can’t see any options for retrieving your username or password, please get in touch with the person who takes care of Moodle in your school or learning organisation.&lt;br /&gt;
===I see an error message when I try to use the app===&lt;br /&gt;
If you see an error message that prevents you from using the app, please get in touch with the person who takes care of Moodle in your school or learning organisation. &lt;br /&gt;
&lt;br /&gt;
Some of the most common errors that your school or learning organisation will be able to fix are:&lt;br /&gt;
* Your token is expired or not valid.&lt;br /&gt;
* An error mentioning the parameter “includestealthmodules”.&lt;br /&gt;
* The web service function is not available.&lt;br /&gt;
* A message about site maintenance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you’re experiencing any of these errors, contact your school or learning organisation for help.&lt;br /&gt;
===What permissions does the app require?===&lt;br /&gt;
The app requires the following permissions:&lt;br /&gt;
* Record audio - for uploading to your Moodle site&lt;br /&gt;
* Read and modify the contents of your SD card - for content to be downloaded to your SD Card for offline access.&lt;br /&gt;
* Network access - to be able to connect with your Moodle site and check if you are connected, and if not to switch to offline mode.&lt;br /&gt;
* Run at startup - to receive local notifications even when the app is running in the background.&lt;br /&gt;
* Prevent phone from sleeping - to receive push notifications anytime.&lt;br /&gt;
===What are the minimum device requirements to use the Moodle app?===&lt;br /&gt;
Android devices: Require Android 7.0 or later. (Users with Android 5 and 6 can still use version 4.3, but they will not receive any new updates.)&lt;br /&gt;
&lt;br /&gt;
iOS devices (iPhones/iPads): Require iOS 13 or later. (Please note the app was only tested on versions iOS 14 and onward.)&lt;br /&gt;
&lt;br /&gt;
===I can&#039;t see my course on the app. What do I do?===&lt;br /&gt;
Check with your course tutor that you are correctly enrolled.&lt;br /&gt;
=== Why can&#039;t I upload my assignment on the app?===&lt;br /&gt;
If you’re experiencing any issue uploading assignment, please contact your school or learning organisation for help.&lt;br /&gt;
===Why can&#039;t I sometimes access the app or submit anything to it?===&lt;br /&gt;
This could be because of interruptions in your internet connection. Wait a while and try again. If you continue to have problems, contact your school or learning organisation for help.&lt;br /&gt;
===Is there a space limit on my files?===&lt;br /&gt;
Assignments will have a size limit which you can see, those are set by your teachers. For other space limit questions, check with your your school or learning organisation .&lt;br /&gt;
===When are activities completed offline synchronized?===&lt;br /&gt;
See [[Moodle app synchronization]].&lt;br /&gt;
===Why the site is asking for my username and password when an activity is opened in the browser?===&lt;br /&gt;
For security reasons, between auto-logins you must wait 6 minutes (this should not be a problem because most of the browsers will keep your Moodle session open).&lt;br /&gt;
In recent Moodle versions, the previous value can be configured in Site Administration &amp;gt; Mobile app authentication &amp;gt;  Minimum time between auto-login requests&lt;br /&gt;
&lt;br /&gt;
=== The Moodle app might seem slow (especially on Android devices) ===&lt;br /&gt;
There are several factors that could be causing this issue. It could be due to outdated or underperforming devices, or perhaps there are too many applications open, causing limited memory in your mobile device.&lt;br /&gt;
&lt;br /&gt;
To troubleshoot this problem, we recommend trying the application with our demo site: https://school.moodledemo.net. Simply use the username &amp;quot;student&amp;quot; and the relevant password to access the site. If you find that the navigation and overall experience with the app are improved, then the issue may be at the server level. In this case, we suggest contacting your school or learning organisation for further assistance.&lt;br /&gt;
&lt;br /&gt;
=== The Moodle app restarts/ closes / reopenes itself ===&lt;br /&gt;
This is likely because there are too many apps opened on your mobile device. Mobile devices have a finite amount of memory, and the device&#039;s memory manager is responsible for determining which applications to keep open and which to close.&lt;br /&gt;
To optimise your device&#039;s performance, we recommend closing all applications that are not currently in use. This will free up valuable memory and ensure that your device runs smoothly.&lt;br /&gt;
===I use LineageOS and I&#039;m having problems using the app===&lt;br /&gt;
LineageOS uses a different WebView implementation not compatible vith the app. You need to install &amp;quot;Android System WebView&amp;quot; from Google Play (or via a trusted apk) and enabling it via Settings &amp;gt; Developer options &amp;gt; WebView implementation.&lt;br /&gt;
===H5P packages and external content embedded via iframes are not working on iOS ===&lt;br /&gt;
This is caused by a new feature of iOS 14 called ITP that blocks cookies for external sites embedded in the app (the H5P content is played embedded in an iframe pointing to the Moodle website) unless the user enables a setting in the app to allow those cookies.&lt;br /&gt;
&lt;br /&gt;
The quick workaround is to enable the setting &amp;quot;Allow Cross-Website Tracking&amp;quot; available via the Settings app (look for the Moodle app, at the bottom) on your iPhone/iPad with iOS 14.&lt;br /&gt;
===I cannot reproduce audio that was recorded on browser on iOS devices (iPhones and iPads)===&lt;br /&gt;
This behaviour is related to this Moodle LMS bug: https://tracker.moodle.org/browse/MDL-80114&lt;br /&gt;
&lt;br /&gt;
=== I don&#039;t receive calendar notifications (reminders) when using Android 12 or above === &lt;br /&gt;
&lt;br /&gt;
In order to receive calendar notifications you need to allow alarms and reminders for the Moodle app. To do this:&lt;br /&gt;
* Open Android Settings and go to the Moodle app settings. Another way to reach these settings is by long-clicking the Moodle app icon and pressing &amp;quot;App info&amp;quot;.&lt;br /&gt;
* Make sure that Notifications are enabled.&lt;br /&gt;
* If you see a section called &amp;quot;Alarms &amp;amp; reminders&amp;quot;, make sure it is Allowed (this setting is disabled by default in Android 14+).&lt;br /&gt;
&lt;br /&gt;
==Teachers==&lt;br /&gt;
===How can I enable videos in my course to be downloaded?===&lt;br /&gt;
See the section &#039;Media download for offline usage&#039; in [[Creating Moodle-app-friendly courses]].&lt;br /&gt;
===Which course format is it best to use?===&lt;br /&gt;
Topics or weekly course format is best suited to mobile devices.&lt;br /&gt;
===How do I make YouTube links open automatically in the app?===&lt;br /&gt;
Add YouTube links as a [[URL resource]].&lt;br /&gt;
===Why can&#039;t my students see their courses?===&lt;br /&gt;
If you or an administrator have correctly enrolled them in a course, they can see it in their mobile app. If they are correctly enrolled but can still not see their course, ask them to check with your Moodle site administrator.&lt;br /&gt;
=== I can&#039;t mark assignments in the app===&lt;br /&gt;
If you are experiencing problems when grading, please review that you are using the correct decimal separators (if the app interface is in English, you must use a period).&lt;br /&gt;
===What communications tools can I use in the app to engage with my learners?===&lt;br /&gt;
See [[Mobile app notifications]]. Chat, forums and messaging are all supported by the app.&lt;br /&gt;
===My Vimeo videos are not playing in the app===&lt;br /&gt;
In older versions of Moodle (pre-Moodle 3.7), it may be necessary to activate the &amp;quot;Allow frame embedding&amp;quot; admin setting. However, for those using Moodle version 3.7 or later, it is important to check whether a Proxy/Firewall/Web Server security module is setting the X-Frame-Options header in your HTTP request responses. If this is the case, it is recommended to deactivate this feature as it may cause conflicts, as Moodle already sets this header by default. &lt;br /&gt;
&lt;br /&gt;
This setting is typically found in any of these configuration files .htaccess, httpd.conf or VirtualHost. To disable it, you can just use: Header always unset X-Frame-Options &lt;br /&gt;
&lt;br /&gt;
You may also use Bootstrap responsive classes: https://getbootstrap.com/docs/4.0/utilities/embed/, for example, &amp;lt;div class=&amp;quot;embed-responsive&amp;quot;&amp;gt;&lt;br /&gt;
For older versions, see this forum discussion with a workaround: https://moodle.org/mod/forum/discuss.php?d=327342&lt;br /&gt;
&lt;br /&gt;
If the issue is with vimeo videos on Moodle sites 3.10 or 3.11, please update the Moodle site to the latest version possible (at least 3.10.10 or 3.11.6). (See https://tracker.moodle.org/browse/MDL-74042)&lt;br /&gt;
===ReCaptcha doesn&#039;t work on my site===&lt;br /&gt;
In older versions of Moodle (pre-Moodle 3.7), it may be necessary to activate the &amp;quot;Allow frame embedding&amp;quot; admin setting. However, for those using Moodle version 3.7 or later, it is important to check whether a Proxy/Firewall/Web Server security module is setting the X-Frame-Options header in your HTTP request responses. If this is the case, it is recommended to deactivate this feature as it may cause conflicts, as Moodle already sets this header by default. &lt;br /&gt;
===H5P packages don&#039;t work on my site===&lt;br /&gt;
In older versions of Moodle (pre-Moodle 3.7), it may be necessary to activate the &amp;quot;Allow frame embedding&amp;quot; admin setting. However, for those using Moodle version 3.7 or later, it is important to check whether a Proxy/Firewall/Web Server security module is setting the X-Frame-Options header in your HTTP request responses. If this is the case, it is recommended to deactivate this feature as it may cause conflicts, as Moodle already sets this header by default. &lt;br /&gt;
&lt;br /&gt;
This setting is typically found in any of these configuration files .htaccess, httpd.conf or VirtualHost. To disable it, you can just use: Header always unset X-Frame-Options &lt;br /&gt;
&lt;br /&gt;
This can also happen when you are using the non-official H5P plugin (mod_hvp), in that case you will see the following message: This site is not configured properly for displaying mobile H5P content. Please contact a site administrator so they can apply the above suggested configuration changes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cookies issues&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If your site uses HTTPS please ensure that the &amp;quot;Secure cookies only&amp;quot; (cookiesecure) setting under Site administration &amp;gt; HTTP security is enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency errors&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the following error appears &amp;quot;Missing dependency H5P.Editor. something X required by H5P.Editor. something Y&amp;quot;. H5P packages need to include all the libraries (dependencies) they use so the package is self-contained. But sometimes packages might be missing at least one dependency.&lt;br /&gt;
&lt;br /&gt;
In order to fix this, you could do the following:&lt;br /&gt;
&lt;br /&gt;
Open Moodle’s Content Bank (from the link in the problematic H5P settings page) and upload your H5P package there, once uploaded, you will see the H5P package and an “Edit” button, click on that button so the editor opens, scroll down and click “Save”.&lt;br /&gt;
Now, you can replace the problematic H5P with this new one, for this, you can just include it from the Content bank by opening the activity settings page and the file picker.&lt;br /&gt;
=== I use a Moodle plugin but the app says it is not supported ===&lt;br /&gt;
You should contact the plugin developer and point him to this documentation: https://docs.moodle.org/dev/Moodle_Mobile_Remote_addons where it is explained how to add support to plugins in the Mobile app.&lt;br /&gt;
&lt;br /&gt;
There is a list of Moodle plugins supported by the app here: https://moodle.org/plugins/browse.php?list=award&amp;amp;id=6&lt;br /&gt;
=== I have problems playing SCORM packages ===&lt;br /&gt;
This might be caused because:&lt;br /&gt;
* The SCORM was added using an advanced option (remote imsmanifest.xml packages or file system repository unzipped SCORMS)&lt;br /&gt;
* The SCORM ZIP file was created using a tool that does not create standardised ZIP files (for example, zip files containing the inverted path separator &amp;quot;\&amp;quot; will not work on Android)&lt;br /&gt;
Please refer to [[Moodle app SCORM player]] for additional information.&lt;br /&gt;
=== My quizzes or lessons are not working offline ===&lt;br /&gt;
You need to edit the quiz or lesson activity settings and enable the &amp;quot;Allow lesson/quiz to be attempted offline using the mobile app&amp;quot; configuration option.&lt;br /&gt;
=== Maths notation is not displaying correctly in the app ===&lt;br /&gt;
If you are having issues with MathJax, please enable the [[TeX notation filter]] also.&lt;br /&gt;
&lt;br /&gt;
If you have both filters enabled, please leave MathJax above TeX so it is always processed before TeX.&lt;br /&gt;
=== How can I disable text selection / copy in the app? ===&lt;br /&gt;
You can create a remote theme and add some custom CSS rules to disable it, see https://docs.moodle.org/dev/Moodle_Mobile_Themes&lt;br /&gt;
=== My images, videos or audios stop working after the first time ===&lt;br /&gt;
Please make sure the URL you&#039;re using on the media file doesn&#039;t have any redirect (e.g. http to https), always try to use the final URL. There&#039;s a bug in the library we use to download those files, it doesn&#039;t work when downloading files with redirects. We have plans to remove that library from the app, but since then please always try to use URLs without redirects.&lt;br /&gt;
&lt;br /&gt;
==Administrators==&lt;br /&gt;
=== What plans are available for the Moodle app? ===&lt;br /&gt;
There are three main plans available for the Moodle app: Free, Pro, and Premium, each offering different features and benefits. In addition to the three main plans, there is also a Branded Moodle App (BMA) option. The BMA is a custom-built app that is branded to your organization. Learn more in [[Moodle app plans]].&lt;br /&gt;
=== How can I have my site listed in the Moodle app site finder? ===&lt;br /&gt;
Please refer to our [[Moodle app guide for admins]] for instructions.&lt;br /&gt;
=== How can I debug errors in the app? ===&lt;br /&gt;
Go to the More tab and then to Settings &amp;gt; General. Enable &amp;quot;Display debug messages&amp;quot;. This will show an explanatory message when an error occurs, alternatively, you can do a full debugging via: https://docs.moodle.org/dev/Moodle_Mobile_debugging_WS_requests&lt;br /&gt;
&lt;br /&gt;
=== How can I disable features in the app? ===&lt;br /&gt;
Please go to &#039;&#039;Site administration &amp;gt; Mobile features &amp;gt; Disabled features&#039;&#039; and select all the features you want to disable.&lt;br /&gt;
&lt;br /&gt;
To select multiple features you will have to use Ctrl (Cmd in Mac) + Click&lt;br /&gt;
&lt;br /&gt;
=== How can I add custom menu items in the app? ===&lt;br /&gt;
You can add custom additional menu items in the &amp;quot;more&amp;quot; menu of the app, the one represented by three consecutive dots.&lt;br /&gt;
&lt;br /&gt;
Please go to &#039;&#039;Site administration &amp;gt; Mobile features &amp;gt; Custom menu items&#039;&#039; and follow the instructions in [[Moodle_app_guide_for_admins#Custom_menu_items|Moodle app guide for admins]] for the correct format to use.&lt;br /&gt;
&lt;br /&gt;
As a quick example:&lt;br /&gt;
  Academy information|https://yoursite.com/mod/page/view.php?id=X |app|en|home&lt;br /&gt;
&lt;br /&gt;
=== How can I customise the language strings in the app? ===&lt;br /&gt;
&lt;br /&gt;
Please go to &#039;&#039;Site administration &amp;gt; Mobile features &amp;gt; Custom language strings&#039;&#039; and follow the instructions in [[Moodle_app_guide_for_admins#Custom_language_strings|Moodle app guide for admins]] for the format to use.&lt;br /&gt;
&lt;br /&gt;
As a quick example:&lt;br /&gt;
 core.user.student|Learner|en&lt;br /&gt;
 core.user.student|Aprendiz|es&lt;br /&gt;
&lt;br /&gt;
=== I can connect with my iPhone (or iPad) but not with my Android phone ===&lt;br /&gt;
This usually happens when the site is using https and the certificate is not correctly configured or it is using an old protocol, please use these pages to check this certificate: https://www.sslshopper.com/ssl-checker.html, https://www.geocerts.com/ssl_checker, and https://www.ssllabs.com/ssltest/analyze.html&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The certificate of this site cannot be trusted by your device: TLS connection could not be established: javax.net.ssl.SSLHandshakeException&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This error could be caused because in any of the certification paths there is a certificate using SHA-1. Starting Android 10 this is not allowed, more information here: https://developer.android.com/privacy-and-security/security-ssl&lt;br /&gt;
&lt;br /&gt;
You could easily check the previous using https://www.ssllabs.com/ssltest/analyze.html and going to the Certification Paths -&amp;gt; Android section, if there is any mention to SHA-1 this could be the cause. You will need to upgrade your certificates to avoid using SHA-1.&lt;br /&gt;
&lt;br /&gt;
=== My certificate is fine but I still can&#039;t connect ===&lt;br /&gt;
This is usually a server configuration problem caused by any of the following server configuration issues:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Access to XMLHttpRequest at &#039;https://yoursite/webservice/rest/server.php?moodlewsrestformat=json&amp;lt;nowiki/&amp;gt;...&#039; from origin &#039;&amp;lt;nowiki&amp;gt;http://localhost&#039;&amp;lt;/nowiki&amp;gt; has been blocked by CORS policy: No &#039;Access-Control-Allow-Origin&#039; header is present on the requested resource.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is because a Proxy/Firewall/Web Server security module is removing automatically the Access-Control-Allow-Origin: * header that Moodle sets to allow Web Service requests. &lt;br /&gt;
&lt;br /&gt;
It is totally secure to remove that Proxy/Firewall/Web Server rule/configuration because that header is only set by Moodle when needed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;access-control-allow-origin cannot contain more than one origin&amp;quot;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
iOS and Android apps do not allow the following header to contain more than one item: &amp;quot;Access-Control-Allow-Origin&amp;quot;. For example, a header like this: Access-Control-Allow-Origin: *, https://mydomain.com will cause problems.&lt;br /&gt;
&lt;br /&gt;
This HTTP header is not valid, according to the specification you can only specify a domain or a &amp;quot;*&amp;quot;:&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin&lt;br /&gt;
&lt;br /&gt;
Please, review if you have a Proxy/Firewall/Web Server adding automatically values to that HTTP header.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Security rules are blocking requests using the Accept-Charset header&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some security rules, such as OWASP ModSecurity, are blocking requests with this header that is sent by the Moodle App. In future releases of the app, this problem will be fixed. But in the meantime, you should disable it. Find more about this in MOBILE-4342.&lt;br /&gt;
=== My certificate is fine but the Moodle app is detecting http instead of https ===&lt;br /&gt;
If the Moodle app is detecting http instead of https, please revise config.php (check &amp;quot;wwwroot&amp;quot; as well as &amp;quot;httpswwwroot&amp;quot;)&lt;br /&gt;
===After updating Moodle LMS to a recent version my users cannot login===&lt;br /&gt;
This only applies to sites that are configured to use log in via an embedded browser pointing to their Moodle site.&lt;br /&gt;
This behaviour could be related to this Moodle LMS issue: https://tracker.moodle.org/browse/MDL-81897.&lt;br /&gt;
There are several ways to fix this issue:&lt;br /&gt;
# Upgrade their Moodle site to any of the indicated version in the issue that will solve the problem&lt;br /&gt;
# Manually apply the patch here: https://github.com/jleyva/moodle/compare/462d5f04a8...MDL-81897-master&lt;br /&gt;
# Immediate workaround: Change the app authentication so it will launch in a separate browser, by going to Site admin &amp;gt; Mobile app authentication &amp;gt; Type of login (and select the option that mentions external/system browser), remember to Save Changes&lt;br /&gt;
We’d recommend doing 3) that will immediately address the issue that is affecting new logins.&lt;br /&gt;
===I can&#039;t get the app to work. What can I do?===&lt;br /&gt;
Assuming you have enabled mobile services on your site, please check:&lt;br /&gt;
# If your site uses an SSL certificate, it must be a trusted certificate, not self-signed. Please use these tools or a similar one to check that your certificate is valid: [https://www.sslshopper.com/ssl-checker.html SSL Checker], [https://www.geocerts.com/ssl_checker SSL Checker], and [https://www.ssllabs.com/ssltest/analyze.html SSL Server Test]. All the checks must be ok, including the &amp;quot;Certificate Chain Complete&amp;quot;. Otherwise the app might work on iOS but not on Android.&lt;br /&gt;
# Make sure that the &amp;quot;Access-Control-Allow-Origin&amp;quot; header only contains one item. For example, a header like this: Access-Control-Allow-Origin: *, &amp;lt;nowiki&amp;gt;https://mydomain.com&amp;lt;/nowiki&amp;gt; will cause problems.&lt;br /&gt;
# [[Debugging]] is disabled (in &#039;&#039;Site administration &amp;gt; Development &amp;gt; Debugging&#039;&#039;)&lt;br /&gt;
# The ADOdb debug option is disabled if you are using the external database auth or enrolment plugin (in &#039;&#039;Plugins &amp;gt; Authentication &amp;gt; External database&#039;&#039; and in &#039;&#039;Plugins &amp;gt; Enrolment &amp;gt; External database&#039;&#039;).&lt;br /&gt;
# SHA-1 https certificates are not supported anymore in Chrome, this means that the Android version of the app won&#039;t work for your site. If your site doesn&#039;t work in desktop Chrome or Chromium it won&#039;t work in the Android app. See https://blog.chromium.org/2014/09/gradually-sunsetting-sha-1.html for more information&lt;br /&gt;
# If you are using IIS check that Anonymous access is not disabled for the /webservice directory.&lt;br /&gt;
# If you are using a web application firewall like AWS WAF, StackPath, Barracuda, Cloudflare, Juniper, etc... try to temporary disable it to check if that&#039;s the cause. If so, you&#039;ll have to whitelist these endpoints: login/token.php, webservice/*, lib/ajax/*, media/player/vimeo/wsplayer.php and /tokenpluginfile.php&lt;br /&gt;
You can also add WAF rules to allow traffic by detecting the app user agent such as: (http.user_agent contains &amp;quot;MoodleMobile&amp;quot;)&lt;br /&gt;
If you still have a problem, please post in the [https://moodle.org/mod/forum/view.php?id=7798 Moodle for mobile forum].&lt;br /&gt;
&lt;br /&gt;
If the issue started after updating Moodle LMS please visit [[After updating Moodle LMS to a recent version my users cannot login]].&lt;br /&gt;
&lt;br /&gt;
=== I cannot access with old users, but I can with recently created ones! ===&lt;br /&gt;
Please, do a &amp;quot;Purge all caches&amp;quot; via the Moodle administration settings, this will solve the problem.&lt;br /&gt;
===I can&#039;t view the courses tab as an administrator===&lt;br /&gt;
The Moodle app only displays courses you are enrolled in. If you want to view a course as an admin, you need to enrol in it.&lt;br /&gt;
===My Moodle site uses a SSO auth method (Shibboleth, CAS, Google OAuth, etc) and the app is not working===&lt;br /&gt;
See the section &#039;Mobile authentication&#039; in the [[Moodle app guide for admins]] for details of how to configure it.&lt;br /&gt;
&lt;br /&gt;
If configured the app is still not connecting: If your site uses an SSL certificate, it must be a trusted certificate, not self-signed. Please use this tool or a similar one to check that your certificate is fine: [https://www.geocerts.com/ssl_checker SSL Checker]. All the checks must be OK, including the &amp;quot;Certificate Chain Complete&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If your SSO method is unable to authenticate when using an &amp;quot;embedded browser&amp;quot; (it gives an authentication error), please check if it works with a &amp;quot;browser window&amp;quot;. If it does work with the browser window then it means your SSO is performing an HTTP redirect, and these kind of redirects aren&#039;t supported by the app (the request is redirected by the browser not passing the POST parameters). Unfortunately, this is something we cannot control in the Mobile app (it can&#039;t be handled via JavaScript). For further information, see http://stackoverflow.com/questions/228225/prevent-redirection-of-xmlhttprequest and http://stackoverflow.com/questions/4168784/ajax-redirection-handling&lt;br /&gt;
&lt;br /&gt;
There are only 2 possible solutions: set the authentication via a &amp;quot;browser window&amp;quot; instead of an embedded one (please notice this won&#039;t work in the Linux desktop app), or remove the redirect from the SSO auth method.&lt;br /&gt;
===SSO is not working with my custom auth plugin===&lt;br /&gt;
SSO should work in any plugin if the plugin handles correctly the $SESSION-&amp;gt;wantsurl, this is the way SSO works when it is launched via the app:&lt;br /&gt;
* It launchs this URL https://yourmoodle/admin/tool/mobile/launch.php?service=local_mobile&amp;amp;passport=abc in the device browser &lt;br /&gt;
* If the user is not logged in, the browser will redirect the user to the login page&lt;br /&gt;
* If the auth plugin used implements correctly the handling of the wantsurl session var, once the user has logged in, the browser should redirect back to the https://yourmoodle/admin/tool/mobile/launch.php?service=local_mobile&amp;amp;passport=abc URL that will launch the mobile app via the custom URL protocol&lt;br /&gt;
Custom auth plugins may be failing in the last step,not redirecting back to tool/mobile, this will happen only if the plugin does not support correctly the $SESSION-&amp;gt;wantsurl.&lt;br /&gt;
&lt;br /&gt;
The SAML plugin works correctly but some modifications of that plugin may not work if important lines are changed.&lt;br /&gt;
===I am having problems requesting an airnotifier access key===&lt;br /&gt;
If you have registered your site but are still unable to request an access key, please register your site on the Moodle Apps Portal https://apps.moodle.com once your site is registered there, an Airnotifier access key will be automatically generated for you.&lt;br /&gt;
=== Push notifications are not working ===&lt;br /&gt;
Please check [[Mobile app notifications#Troubleshooting]]&lt;br /&gt;
=== How notifications icon badges are updated ===&lt;br /&gt;
&#039;&#039;&#039;Android&#039;&#039;&#039;: Not all Android devices support icon badges so in some cases badges will never display numbers, also, depending on the device only a badge indicating that there are new notifications will be displayed when receiving a Push notification when the app is not in the foreground.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;iOS&#039;&#039;&#039;: The icon badge counter is only updated when the app is open and it will reflect the number of notifications pending reading or the number of message senders that sent you a message you have not read yet&lt;br /&gt;
&lt;br /&gt;
In general, for iOS the icon badge displayed number should match the one displayed at the bottom of the app (or it should be the sum of the notifications and messages badges) and is not an indicator of the number of Push notifications the user has received, it acts as a reminder of pending notifications to be read that only gets updated when the user open the apps&lt;br /&gt;
&lt;br /&gt;
There is an open issue to improve the behaviour on iOS, please watch MDL-73707&lt;br /&gt;
=== I configured &#039;QR code access&#039; to automatic login, but the app still asks for credentials  ===&lt;br /&gt;
Automatic authentication only works for Pro and Premium sites. You can see the app plans [https://moodle.com/app/ in this site].&lt;br /&gt;
&lt;br /&gt;
If you&#039;re getting an error saying that the device you&#039;re using to connect isn&#039;t in the same network as the device that displays the QR code but both devices are connected to the same network, please check the section: [[#ipmismatch:_.27Client_IP_address_mismatch.27|ipmissmatch: &#039;Client IP address mismatch&#039;]].&lt;br /&gt;
&lt;br /&gt;
=== I can log in on my Moodle site but I see a blank page or the app styles broken ===&lt;br /&gt;
This is usually because your Moodle site has a customised CSS. &lt;br /&gt;
&lt;br /&gt;
Please try leaving empty CSS (&#039;&#039;mobilecssurl&#039;&#039;) on Site administration &amp;gt; Mobile app &amp;gt; Mobile appearance. If that works, please read [https://docs.moodle.org/dev/Moodle_App_Remote_Themes Moodle App Remote Themes] and create a new CSS file using the variables mentioned there&lt;br /&gt;
&lt;br /&gt;
===The Moodle app does not connect to MoodleBox (or other internal self-hosted systems)===&lt;br /&gt;
You will need to disable SSL to make the app works, please see this forum discussion for more information: https://moodle.org/mod/forum/discuss.php?d=424353#p1739474&lt;br /&gt;
===I think I found a bug with the app. Where can I report it?===&lt;br /&gt;
# Log in to the [https://tracker.moodle.org/browse/MOBILE Moodle Mobile tracker] (you&#039;ll need to [http://tracker.moodle.org/secure/Signup%21default.jspa create a tracker account] if you&#039;ve not done so previously)&lt;br /&gt;
# Check whether the issue has already been reported by doing a [https://tracker.moodle.org/issues/?jql=project%20%3D%20MOBILE search]&lt;br /&gt;
# If not, report the bug by clicking the &#039;Create Issue&#039; link at the top right of the page, selecting &#039;Moodle app&#039; as the project&lt;br /&gt;
# Add a detailed description providing as much information as possible (Moodle version, app version, device model and operating system, etc...), then click the Create button&lt;br /&gt;
===How can I get the app in my language?===&lt;br /&gt;
[[File:setting the app lang.png|thumb|100px|Setting your language]]&lt;br /&gt;
The Moodle app automatically detects your mobile&#039;s language and displays in the same language (if the translation exists). Otherwise, you can set the app language in App settings &amp;gt; General.&lt;br /&gt;
&lt;br /&gt;
See also a post explaining how multi-lang works in the Moodle app: [https://moodle.org/mod/forum/discuss.php?d=453445#p1825637 Re: Language selector missing in Moodle app]&lt;br /&gt;
&lt;br /&gt;
If the Moodle app is not yet available in your language, please contribute a translation! See [https://docs.moodle.org/dev/Translating%20Moodle%20Mobile Translating Moodle Mobile] for details of what to do.&lt;br /&gt;
&lt;br /&gt;
=== Changes made to a Moodle site URL can cause logged-in users’ data to fail when synchronising. ===&lt;br /&gt;
We recommend that administrators manually log out all users after a site rename. If your site URL changes and have site users that are using the mobile Moodle App we suggest the following:&lt;br /&gt;
* For users that have not yet logged in - we recommend sending them the new URL&lt;br /&gt;
*   For users already using the mobile Moodle App and potentially logged in request them to:&lt;br /&gt;
** log out of the mobile Moodle App,&lt;br /&gt;
** delete the old site, and&lt;br /&gt;
** log in using the new URL&lt;br /&gt;
Logged in Moodle users can continue working with the previous URL (with cached information) but they will not be able to synchronise the new information (therefore not receiving new information from their teachers, and teachers not receiving data or submissions from those students).&lt;br /&gt;
* To avoid the risk of data not synchronising, we recommend the site administrator logs out all app users, by manually deleting their tokens:&lt;br /&gt;
** Go to Site administration&lt;br /&gt;
** Click Server &lt;br /&gt;
** Click Web services &lt;br /&gt;
** Click Manage tokens &lt;br /&gt;
** Delete the tokens&lt;br /&gt;
Take into account that you still need to request your users to log in using the new URL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Embedded content is not working ===&lt;br /&gt;
&lt;br /&gt;
This could be caused because your site is using a Content-Security-Policy that is preventing the app from embedding content.&lt;br /&gt;
&lt;br /&gt;
You can easily detect this when an error like this is displayed (javascript console): Refused to load URL because it does not appear in the frame-ancestors directive of the Content Security Policy.&lt;br /&gt;
&lt;br /&gt;
If that&#039;s the case, you&#039;d need to add the following elements: http://localhost moodleappfs://localhost at the end of the &amp;quot;Content-Security-Policy&amp;quot; HTTP header:&lt;br /&gt;
&lt;br /&gt;
An example of a CSP allowing embedding Vimeo videos in the site and content in the app:&lt;br /&gt;
Content-Security-Policy: frame-ancestors &#039;self&#039; https://*.vimeocdn.com https://*.vimeows.com https://*.vimeo.com http://localhost moodleappfs://localhost ;&lt;br /&gt;
&lt;br /&gt;
Other type of embedded content that does not work is content hosted by Microsoft tools that require session or any type of authentication, such as SharePoint content.&lt;br /&gt;
&lt;br /&gt;
=== Some activities are displayed incorrectly (blank, just a vertical line, ..) on the app ===&lt;br /&gt;
Please visit the forum post [[https://moodle.org/mod/forum/discuss.php?d=461909#p1854918| Some lesson activities do not display at all]].&lt;br /&gt;
&lt;br /&gt;
==Error messages==&lt;br /&gt;
=== &#039;Coding error: version.php file is missing for the component&#039; ===&lt;br /&gt;
This error message indicates that that plugin is not correctly installed (or uninstalled) on the Moodle site you use (see [[Installing plugins]]). Please review the mod/certificate folder to check if the version.php file is missing (or has incorrect permissions) as well as purge cache too.&lt;br /&gt;
=== &#039;Can not find data record in database table external_functions&#039; ===&lt;br /&gt;
This error usually happens due to a bad configuration or setting value in your Moodle site, please check:&lt;br /&gt;
# The user quota global setting should be an integer. For more details, see the discussion [https://moodle.org/mod/forum/discuss.php?d=320873 How to enable Moodle Mobile App for all accounts].&lt;br /&gt;
# The &#039;&#039;usermaxuploadfilesize&#039;&#039; should be an integer, please try to decrease the size. It can be configured in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; Site Policies &amp;gt; Maximum uploaded file size&#039;&#039;. The default value (Site upload limit) depends on the PHP configuration, you might have to change the value of &#039;&#039;upload_max_filesize&#039;&#039; and &#039;&#039;post_max_size&#039;&#039; in your &#039;&#039;php.ini&#039;&#039; file.&lt;br /&gt;
# The user &amp;quot;lang&amp;quot; field in the database is set to a correct value and existing language installed in the site. Some times the lang field is set via external systems to incorrect values or pointing to a language pack that was uninstalled. Please, note that to fix this you need direct access to the database and your &#039;user&#039; and &#039;course&#039; table.&lt;br /&gt;
===&#039;Cannot connect: Verify that you have typed correctly the URL and that your site uses Moodle 3.5 or later&#039;===&lt;br /&gt;
Take into account that the app will only connect to Moodle LMS sites version 3.5 onward.&lt;br /&gt;
Please also check:&lt;br /&gt;
# Mobile services are enabled for the site.&lt;br /&gt;
# The user is entering the correct URL for the site (see FAQ above)&lt;br /&gt;
# For https sites, the certificate is valid (see FAQ above)&lt;br /&gt;
===&#039;Invalid Moodle site version. The Moodle app only supports Moodle systems 3.5 onwards&#039;===&lt;br /&gt;
The app will only connect to Moodle LMS sites version 3.5 onward (see [https://docs.moodle.org/35/en/Upgrading Upgrade to 3.5] as well as [[Upgrade overview]]).&lt;br /&gt;
===&#039;We lost connection; you need to reconnect. Your token is now invalid.&#039; on my custom version of the Moodle app ===&lt;br /&gt;
Please check:&lt;br /&gt;
# You have followed all the steps listed in [https://docs.moodle.org/dev/Moodle%20Mobile%20Developing%20a%20plugin%20tutorial Moodle Mobile Developing a plugin tutorial]&lt;br /&gt;
# You have enabled the [[Capabilities/moodle/webservice:createtoken|moodle/webservice:createtoken]] for the authenticated user&lt;br /&gt;
===&#039;No permission to create web service token for the service local_mobile&#039; when attempting to log in (any user that it is not an admin)===&lt;br /&gt;
Please check you have enabled the moodle/webservice:createtoken for the authenticated user or any global role you want to allow to use the mobile app&lt;br /&gt;
===&#039;No permission to create web service token for the service local_mobile&#039; when attempting to log in as an admin===&lt;br /&gt;
You need to create a token for the admin account (only) as follows:&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Web services &amp;gt; Manage tokens&#039;&#039;&lt;br /&gt;
# Click Add&lt;br /&gt;
# Enter the admin username and select &#039;Moodle app additional features service&#039; (i.e. do NOT leave it as &#039;Moodle app web service&#039;)&lt;br /&gt;
# Click the &#039;Save changes&#039; button.&lt;br /&gt;
===&#039;Invalid response value detected&#039; when accessing the site ===&lt;br /&gt;
The user quota global setting should be an integer. For more details, see the discussion [https://moodle.org/mod/forum/discuss.php?d=320873 How to enable Moodle Mobile App for all accounts].&lt;br /&gt;
=== &#039; Invalid response value detected: Invalid external api response: the value is &amp;quot;&amp;quot;, the server was expecting &amp;quot;raw&amp;quot; type&amp;quot; ===&lt;br /&gt;
This usually happens when there is a field with value NULL in a table in the database that should not be there. This may happen if your Moodle has been upgraded over many years and the database schema is broken.&lt;br /&gt;
&lt;br /&gt;
To fix it, you can do the following: &lt;br /&gt;
* Detect the field that is causing the problem (it should be indicated before the error message)&lt;br /&gt;
* Fix the field, for example, for the password field in the lesson table: UPDATE mdl_lesson SET password = &#039;&#039; WHERE password IS NULL (remember that your table prefix can be different than mdl_)&lt;br /&gt;
===&#039;Invalid response value detected&#039; when accessing My Courses or Course Overview ===&lt;br /&gt;
This usually happens when a course uses a language that isn&#039;t installed in the site. Please make sure that all courses use valid languages. This can be easily checked in the database, table &amp;quot;course&amp;quot;, there is a column named &amp;quot;lang&amp;quot;.&lt;br /&gt;
===&#039;A required parameter (username) was missing&#039;===&lt;br /&gt;
This may happen if your site implements HTTP redirects; the request is redirected by the browser not passing the POST parameters.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, this is something we cannot control in the Mobile app (it can&#039;t be handled via JavaScript). For further information, see http://stackoverflow.com/questions/228225/prevent-redirection-of-xmlhttprequest and http://stackoverflow.com/questions/4168784/ajax-redirection-handling&lt;br /&gt;
&lt;br /&gt;
The solution is to change the HTTP redirect and use an HTML page with a meta tag or JavaScript redirect.&lt;br /&gt;
===&#039;Cannot get course contents&#039;===&lt;br /&gt;
This usually happens when the course is using a course format plugin that was uninstalled from the server or that was not properly installed.&lt;br /&gt;
&lt;br /&gt;
Please, reinstall again the course format plugin.&lt;br /&gt;
===&#039;Access control exception&#039; or &#039;Your authentication token is invalid or has expired&#039;===&lt;br /&gt;
Please double-check that &#039;Enable web services for mobile devices&#039; (&#039;&#039;enablemobilewebservice&#039;&#039;) is actually enabled. (It might be unabled if for example you have reseted some roles.)&lt;br /&gt;
&lt;br /&gt;
If this error appears as soon as you enter the username and password for a new site, then it probably means that the token expiration time is badly configured. This is how to fix it:&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Security &amp;gt; Site security settings&#039;&#039;.&lt;br /&gt;
# Find the setting named &#039;&#039;User created token duration&#039;&#039;.&lt;br /&gt;
# If the value is set to 0 or it&#039;s too low, please set it back to a valid value (the default value is 12 weeks).&lt;br /&gt;
# Click the &#039;Save changes&#039; button.&lt;br /&gt;
&lt;br /&gt;
===ipmismatch: &#039;Client IP address mismatch&#039;===&lt;br /&gt;
This error can appear when a user opens your site in a browser while using the app. This happens if your site is behind a proxy and you&#039;re using one of these Moodle versions o higher: 3.5.11, 3.6.9, 3.7.5, 3.8.2, 3.9.0.&lt;br /&gt;
&lt;br /&gt;
To fix it:&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Administration &amp;gt; Server &amp;gt; HTTP&#039;&#039;.&lt;br /&gt;
# Find the setting named &#039;&#039;Ignore reverse proxies&#039;&#039; (reverseproxyignore).&lt;br /&gt;
# Enter the IP of your proxy (or range of IPs).&lt;br /&gt;
# Click the &#039;Save changes&#039; button.&lt;br /&gt;
If you are still experiencing issues please try to change this setting &amp;quot;getremoteaddrconf&amp;quot; (Logged IP address source) to the different existing values.&lt;br /&gt;
&lt;br /&gt;
Finally, it is possible to disable the IP restriction checks for functionality such as the QR login, to do that, go to Site administration &amp;gt; Mobile app &amp;gt; Mobile app authentication, and disable the &amp;quot;QR authentication same IP check&amp;quot; setting.&lt;br /&gt;
=== &#039;The param &amp;quot;includestealthmodules&amp;quot; is invalid&#039; ===&lt;br /&gt;
Please contact your learning organisation so they upgrade to at least Moodle 3.5.3 (see [https://docs.moodle.org/35/en/Upgrading Upgrade to 3.5] as well as [[Upgrade overview]]) or they manually apply the patch listed here [[MDL-63542]].&lt;br /&gt;
&lt;br /&gt;
==Older versions of the Moodle app==&lt;br /&gt;
We always recommend using the last version of the Moodle App but some times users are still using older versions this is the reason we are keeping this list:&lt;br /&gt;
&lt;br /&gt;
=== Some users are asked to reauthenticate too often when they browse the site (Moodle App &amp;lt;3.9.3) ===&lt;br /&gt;
This can happen if the app is sending too many variables to a WebService, e.g. because a course has a large number of sections and/or activities. This error was fixed in the 3.9.3 version of the app, but if you are using an older version of the app you can increase the value of &#039;&#039;max_input_vars&#039;&#039; in &#039;&#039;php.ini&#039;&#039; to fix it in your server.&lt;br /&gt;
&lt;br /&gt;
=== After upgrading to 3.9.5 some of my plugins have stopped working ===&lt;br /&gt;
The Moodle App 3.9.5 version came with some breaking changes for plugins, most of the existing plugins have been updated to support the new changes.&lt;br /&gt;
Please check the following list of plugins that should work for 3.9.5 once you have upgraded to the latest version indicated in the document: https://docs.google.com/spreadsheets/d/1E9PqcUBpp9SAfQc_zJtX5tf9GeS3UN76A85IrrB4UDw/edit#gid=0&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7798 Moodle for mobile forum] on moodle.org.&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[de:Moodle Mobile - FAQ]]&lt;br /&gt;
[[ca:Moodle Mobile FAQ]]&lt;br /&gt;
[[es:Moodle app FAQ]]&lt;br /&gt;
[[fr:Moodle pour les mobiles]]&lt;br /&gt;
[[ja:バイルMoodle FAQ]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_guide_for_admins&amp;diff=150974</id>
		<title>Moodle app guide for admins</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_guide_for_admins&amp;diff=150974"/>
		<updated>2025-01-31T11:41:50Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Analytics and stats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
==Enable mobile services on your site==&lt;br /&gt;
Your site needs to have mobile access enabled so users can use the mobile app.&lt;br /&gt;
&lt;br /&gt;
For sites using https, mobile access is enabled by default in new installations of Moodle 3.0 onwards.&lt;br /&gt;
&lt;br /&gt;
For http sites, mobile access can be enabled by an administrator as follows:&lt;br /&gt;
# In &#039;&#039;Site administration &amp;gt; Mobile app &amp;gt; Mobile settings&#039;&#039; tick the &#039;Enable web services for mobile devices&#039; checkbox. (For 4.0 version: In &#039;&#039;Site administration &amp;gt; Advanced features&#039;&#039; tick the &#039;Enable web services for mobile devices&#039; checkbox&lt;br /&gt;
# Click the button to save changes.&lt;br /&gt;
If your site uses a [https://en.wikipedia.org/wiki/Transport_Layer_Security SSL certificate], it must be a trusted certificate. For security reasons the app doesn&#039;t work with self-signed certificates.&lt;br /&gt;
&lt;br /&gt;
Please, verify that your certificate is valid via: https://www.geocerts.com/ssl_checker (you shouldn&#039;t see any warning).&lt;br /&gt;
&lt;br /&gt;
If your site has the /login directory protected (frequently done when using the Shibboleth authentication method), you must enable access to the login/token.php script.&lt;br /&gt;
===Frame embedding===&lt;br /&gt;
If your sites uses [https://en.wikipedia.org/wiki/ReCAPTCHA reCaptcha], Vimeo videos or custom menu items (as described bellow) you must enable the admin setting &amp;quot;Allow frame embedding&amp;quot; (allowframembedding). Please, note this is not necessary since Moodle 3.7&lt;br /&gt;
===Is your site behind a proxy, or load balancer or complex network infrastructure?===&lt;br /&gt;
In that case, you may need to configure the &amp;quot;Ignore reserver proxies&amp;quot; settings in Site administration &amp;gt; Administration &amp;gt; Server &amp;gt; HTTP&lt;br /&gt;
==Register your site on the Moodle Apps Portal==&lt;br /&gt;
We strongly recommend you to register your site for free on the Moodle Apps portal: https://apps.moodle.com&lt;br /&gt;
&lt;br /&gt;
You will be able to retrieve statistics like the number of active user devices receiving Push Notifications and upgrade to a Pro/Premium plan for enjoying exclusive features.&lt;br /&gt;
==Simplify user onboarding==&lt;br /&gt;
Upon opening the Moodle app, first-time users encounter a &amp;quot;Your site&amp;quot; field, where they have to input the URL of their Moodle site to access their courses. To ensure a smooth onboarding experience for new users, follow these steps:&lt;br /&gt;
# Enable the &#039;&#039;&#039;Site finder&#039;&#039;&#039; feature that allows users to find their Moodle site by name, eliminating the need to manually enter the site URL. To enable this feature, view [[Moodle app guide for admins#Have your site listed in the Moodle app site finder|Have your site listed in the Moodle app site finder]] below.&lt;br /&gt;
# Enable the &#039;&#039;&#039;QR login&#039;&#039;&#039; feature (view [[Moodle app guide for admins#QR Login|instructions]] below). This feature allows users to scan a QR code available on their Moodle profile to access their Moodle site directly from the app. &lt;br /&gt;
# For Android users and Moodle LMS 4.3 and later: Encourage users to install the Moodle app by following the &#039;&#039;&#039;Get the mobile app&#039;&#039;&#039; link at the bottom of any Moodle page (located within the &amp;quot;&#039;&#039;&#039;?&#039;&#039;&#039;&amp;quot; icon on the desktop version). When users install the app through this link, they will be automatically redirected to their site login screen, eliminating the need to manually enter the site URL.&lt;br /&gt;
# Alternatively, you can create a dedicated help page for the Moodle app. This help page should include a link to the Google Play version of the app and clearly indicate the site URL referrer. For example, if your Moodle site is mymoodlesite.com the link will be https://play.google.com/store/apps/details?id=com.moodle.moodlemobile&amp;amp;referrer=siteurl%3Dhttps%3A%2F%2Fmymoodlesite.com&lt;br /&gt;
Please note that options 3&amp;amp;4 are not compatible with Google Workspace accounts (the installation referrer will be ignored in that case).&lt;br /&gt;
==Have your site listed in the Moodle app site finder==&lt;br /&gt;
The Moodle apps site finder enables a user to easily find their Moodle site by entering the name (no need to enter the site URL)&lt;br /&gt;
===How can I have my site listed in the Moodle app site finder?===&lt;br /&gt;
Your site will be automatically listed in the site finder if:&lt;br /&gt;
* either your site is registered and listed with a link on [https://stats.moodle.org/sites/ Registered sites] and has over five hundred mobile users and you have been using the Moodle app for over a year&lt;br /&gt;
* or you have purchased a [https://moodle.com/app/ Pro or Premium Moodle app subscription].&lt;br /&gt;
You can arrange for your site to be listed in the site finder as follows:&lt;br /&gt;
* If your site is hosted by a Moodle Partner, please contact them to request for your site to be listed. &lt;br /&gt;
* If you have a MoodleCloud site, please log in to the Moodle Apps Portal where you will find an option to have your site listed.&lt;br /&gt;
Otherwise, to have your site listed in the site finder, you need to purchase a [https://moodle.com/app/ Pro or Premium Moodle app subscription] from the Moodle Apps Portal.&lt;br /&gt;
===I don’t want my site listed in the Moodle app site finder. How can I remove it?===&lt;br /&gt;
You can remove your site from the site finder as follows:&lt;br /&gt;
# Log in to the [https://apps.moodle.com/ Moodle Apps Portal]. (If you don&#039;t yet have an account, you can create one for free.)&lt;br /&gt;
# Go to ‘App customisation’ -&amp;gt; ‘Site Listing’ and uncheck the option ‘Visible’ then save changes. &lt;br /&gt;
Your site will then be immediately removed from the site finder.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can remove your site from the site finder by updating your site registration:&lt;br /&gt;
# Log in to your Moodle site as admin and go to ‘Site administration’ -&amp;gt; Registration.&lt;br /&gt;
# Change ‘Site listing’ to either ‘Do not list my site’ or ‘Only display my site name’.&lt;br /&gt;
Your site will then be removed from the site finder within 24 hours.&lt;br /&gt;
==Mobile authentication==&lt;br /&gt;
&lt;br /&gt;
===MFA===&lt;br /&gt;
The Moodle mobile app does not support MFA natively yet, however, you can redirect users to a browser to force the authentication process to behave exactly as Moodle LMS. You can do the previous via Site administration &amp;gt; Mobile authentication &amp;gt; Type of login and then select any of the options that mention browser.&lt;br /&gt;
&lt;br /&gt;
===SSO authentication method===&lt;br /&gt;
If your site uses a SSO authentication method (CAS, Shibboleth, LDAP SSO, OAuth...), then select via a browser window or via an embedded browser for &#039;Type of login&#039; (typeoflogin) in &#039;Mobile authentication&#039; in the Site administration. (This setting is provided for older pre-Moodle 3.2 sites via the [[Moodle Mobile additional features]] plugin.)&lt;br /&gt;
&lt;br /&gt;
The options &#039;browser window&#039; and &#039;embedded browser&#039; are very similar; the only difference is when redirecting the user to enter their credentials in the site, the site will be opened in the device&#039;s default browser (for browser window) or the site will be opened &amp;quot;embedded&amp;quot; in the mobile app (for embedded browser). The user experience is better in embedded browser, but not all the authentication plugins will work in embedded browser (for example, if JavaScript popups are required they must use the &#039;browser window&#039;). The admin should check whether both options work, and if so, choose &#039;embedded browser&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are using Google OAuth you will have to use the &#039;browser window&#039; method because Google recently blocked authentication via &#039;embedded browsers&#039;.&lt;br /&gt;
&lt;br /&gt;
If your organisation uses a custom branded app and &#039;Type of login&#039; is set to &#039;Via a browser window&#039; or &#039;Via embedded browser&#039;, then a URL scheme (forcedurlscheme) may be set. This will result in only the custom branded app working for the site: the official Moodle Mobile app will not work.&lt;br /&gt;
===QR Login===&lt;br /&gt;
Please note that this feature requires Moodle 3.9 and is only available if you are enjoying a [https://moodle.com/app/ Pro/Premium plan].&lt;br /&gt;
&lt;br /&gt;
As a site administrator, you can enable login via QR. Please go to Site administration &amp;gt; Mobile app &amp;gt; Mobile authentication and select &amp;quot;QR code with automatic login&amp;quot; in the &amp;quot;QR code access&amp;quot; setting&lt;br /&gt;
&lt;br /&gt;
Once enabled, your students will be able to login in the app by scanning a QR code available on their Moodle site profile.&lt;br /&gt;
===Biometric Login===&lt;br /&gt;
This feature is only available to Pro and [https://apps.moodle.com Premium plan customers].&lt;br /&gt;
&lt;br /&gt;
Biometric login allows your users to log in to your site via the Moodle App on Android and iOS devices using their fingerprint, face recognition or any other biometric option available on their mobile device. This makes the login process simpler, faster and more secure, and is specially useful if Autologout is enabled on your site.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enabling biometric login for your site&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can enable Biometric login as an authentication method through the Moodle Apps Portal, going to App customisation &amp;gt; Authentication &amp;gt; Biometric login, and then selecting “Enable biometric login”. Your users will then be able to choose whether they want to use Biometric login or not.&lt;br /&gt;
&lt;br /&gt;
For security reasons, users may be prompted to re-enter their credentials periodically. This interval is determined by the &#039;User created token duration&#039; (tokenduration) security setting, which is set to a default duration of three months. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setting up biometric login as a user&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To use biometric login in the Moodle App, users must have biometric authentication enabled in their own device&#039;s settings (e.g. FaceID or TouchID for iOs users, or Fingerprints for Android users).&lt;br /&gt;
&lt;br /&gt;
The first three times users log in to the app after you enable Biometric login, they will see a notification telling them that they can activate this new authentication method to access the app (provided that they have biometric authentication enabled in their device&#039;s settings).&lt;br /&gt;
&lt;br /&gt;
Users can activate and deactivate their biometric login any time in the Moodle App in User account &amp;gt; Preferences.&lt;br /&gt;
===Auto logout===&lt;br /&gt;
From Moodle LMS 4.3 onwards, you can enhance security by enforcing automatic logout for your users when they leave or close the app, or it goes to the background.&lt;br /&gt;
&lt;br /&gt;
You can even set your own custom re-authentication time, to suit your organisation&#039;s security requirements. &lt;br /&gt;
&lt;br /&gt;
To activate auto logout, go to Site administration &amp;gt; Mobile app &amp;gt; Mobile authentication.&lt;br /&gt;
&lt;br /&gt;
This feature is particularly effective when paired with Biometric login, since that streamlines the login process for your users.&lt;br /&gt;
&lt;br /&gt;
== Customise your app theme ==&lt;br /&gt;
The app can also retrieve your custom styles from your Moodle site. Since the app is a HTML5 app, you can safely apply any CSS, CSS2 and CSS3 style.&lt;br /&gt;
&lt;br /&gt;
Go to &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Mobile app &amp;gt; Mobile appearance&#039;&#039; and enter in the mobilecssurl field a valid URL pointing to a CSS file containing your custom styles.&lt;br /&gt;
&lt;br /&gt;
The CSS should be placed inside your Moodle installation (in your custom theme or inside a local plugin).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For example:&#039;&#039;&#039; &#039;&#039;https://mymoodlesite.com/theme/mytheme/style/mymobileapp.css&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Once the user is logged in the app, remote CSS files for applying your custom styles are regularly retrieved.&lt;br /&gt;
&lt;br /&gt;
Notice that on the first time a user opens the app, he will see the default &amp;quot;orange&amp;quot; style. Your custom styles will be applied once the user has added a site in the app.&lt;br /&gt;
&lt;br /&gt;
For further information, see the dev docs [https://docs.moodle.org/dev/Moodle%20Mobile%20Themes Moodle Mobile Themes].&lt;br /&gt;
&lt;br /&gt;
If you want your own custom branding for your organization, Moodle offers the The [https://moodle.com/branded-app Branded Moodle Mobile app] service, please visit https://moodle.com/app/ for more information.&lt;br /&gt;
== Moodle Mobile additional features plugin for old Moodle sites ==&lt;br /&gt;
For old Moodle sites it is recommended to install the [[Moodle Mobile additional features]] plugin.&lt;br /&gt;
== Notifications ==&lt;br /&gt;
You might find them annoying but push notifications keeps you and your users informed and updated on everything about the app. Moodle only send useful and important notifications such as new features or service disruptions.&lt;br /&gt;
&lt;br /&gt;
Enabling push notifications is easy! An administrator can enable it by connecting their Moodle site/s to our free Notifications server available (only) for registered Moodle sites. &lt;br /&gt;
&lt;br /&gt;
An access key can be obtained via &#039;&#039;Site administration &amp;gt; General &amp;gt; Messaging &amp;gt; Notification settings&#039;&#039;. Be sure the &#039;Mobile&#039; is enabled and then click the link to settings, on the next page select &#039;&#039;Request access key&#039;&#039;. (For Moodle site versions 3.5 and 3.6 an access key can be obtained via &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Message outputs &amp;gt; Manage message outputs&#039;&#039;. Then by clicking the link to the Mobile settings, on the next page select &#039;&#039;Request access key&#039;&#039;.)&lt;br /&gt;
&lt;br /&gt;
The full guide on enabling push notifications can be found here: [[Mobile app notifications]]&lt;br /&gt;
== App banners ==&lt;br /&gt;
[[File:app banner.png|thumb|Moodle Mobile app banner]]&lt;br /&gt;
App banners let your users know that there is a mobile app available for the site. App banners are only displayed when accessing the site using a mobile browser.&lt;br /&gt;
&lt;br /&gt;
In Moodle 3.3 onwards, app banners for Android are supported as well as for iOS.&lt;br /&gt;
&lt;br /&gt;
App banners are disabled by default. They can be enabled in &#039;Mobile appearance&#039; in the Site administration.&lt;br /&gt;
&lt;br /&gt;
If you are using a custom mobile app, you need to provide the unique identifier for the iOS and Android app; if you are using the Moodle Mobile app, the settings may be left as default.&lt;br /&gt;
&lt;br /&gt;
Please, notice the following:&lt;br /&gt;
* App banners for iOS devices (iPhone, iPad or iPod) are only shown when accessing the site using the Safari browser&lt;br /&gt;
* App banners for Android devices are only shown in very recent Chrome browser versions and when the app is not installed. Note also that Chrome uses an engagement heuristic that will display the banner only on certain conditions, like interactions with the site, the last time you interacted with it, etc. You can remove the engagement restriction check by disabling this special chrome flag: chrome://flags/#bypass-app-banner-engagement-checks. Please notice also that certain custom Android versions (such as Samsung and Huawei ones) does not always support this feature&lt;br /&gt;
==&#039;Get the mobile app&#039; link==&lt;br /&gt;
In Moodle 3.4 onwards, the link &#039;Get the mobile app&#039; in the footer of each page on the site encourages users to make use of the mobile app. &lt;br /&gt;
&lt;br /&gt;
By default, the link is https://download.moodle.org/mobile however the setting &#039;App download page&#039; can be changed e.g. for sites using a branded mobile app.&lt;br /&gt;
&lt;br /&gt;
If mobile services are not enabled for the site, then the &#039;Get the mobile app&#039; link is not displayed. &lt;br /&gt;
&lt;br /&gt;
To prevent the &#039;Get the mobile app&#039; link being displayed, simply remove the URL from the &#039;App download page&#039; setting and save changes.&lt;br /&gt;
== Configuring the app from your site ==&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: Please notice that the type and number of features that you can customise depend on your Moodle Apps plan, you can register for free on https://apps.moodle.com to check the different plans.&lt;br /&gt;
&lt;br /&gt;
In Moodle 3.3 onwards, or with the [[Moodle Mobile additional features]] plugin, settings in the Site administration enable admins to configure the app.&lt;br /&gt;
* In Moodle 3.3 onwards go to &#039;&#039;Site administration &amp;gt; Mobile features&#039;&#039;&lt;br /&gt;
* In sites with the Moodle Mobile additional features plugin installed, go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Local plugins &amp;gt; Mobile additional features&#039;&#039;&lt;br /&gt;
===Force log out===&lt;br /&gt;
Replace the Change site option to &amp;quot;Log out&amp;quot; so that users must enter their credentials on their next access. This is useful for custom mobile apps, as there is no reason for users wanting to switch to a different site.&lt;br /&gt;
===Disabled features===&lt;br /&gt;
The mobile app may be simplified by removing unwanted features. Some items may already be not available in the app because they are not enabled on your site.&lt;br /&gt;
&lt;br /&gt;
Options to remove include:&lt;br /&gt;
&lt;br /&gt;
* Offline use&lt;br /&gt;
* Blocks (Note that from &#039;&#039;&#039;Moodle 4.3.1&#039;&#039;&#039; the Global search and Search forums blocks can be removed.)&lt;br /&gt;
* Comments&lt;br /&gt;
* Ratings&lt;br /&gt;
* Tags&lt;br /&gt;
* Create new account&lt;br /&gt;
* Responsive menu items &lt;br /&gt;
* Main menu&lt;br /&gt;
** Site home&lt;br /&gt;
** My courses&lt;br /&gt;
** Dashboard&lt;br /&gt;
** Calendar&lt;br /&gt;
** Notifications&lt;br /&gt;
** Messages&lt;br /&gt;
** Grades&lt;br /&gt;
** My learning plans&lt;br /&gt;
** Blog&lt;br /&gt;
** Files&lt;br /&gt;
** Web page&lt;br /&gt;
** Help&lt;br /&gt;
* Course&lt;br /&gt;
** Blocks&lt;br /&gt;
** Blog&lt;br /&gt;
** Search&lt;br /&gt;
** Competencies&lt;br /&gt;
** Participants&lt;br /&gt;
** Grades&lt;br /&gt;
** Course completion&lt;br /&gt;
** Notes&lt;br /&gt;
** Download course (new in 3.5)&lt;br /&gt;
** Download courses (new in 3.5)&lt;br /&gt;
* User&lt;br /&gt;
** Blog&lt;br /&gt;
** Badges&lt;br /&gt;
** Competencies&lt;br /&gt;
** Course completion&lt;br /&gt;
** Grades&lt;br /&gt;
** Send message&lt;br /&gt;
** Add contact&lt;br /&gt;
** Block contact&lt;br /&gt;
** Add a new note&lt;br /&gt;
** User picture&lt;br /&gt;
* Files&lt;br /&gt;
** Private files&lt;br /&gt;
** Ste files&lt;br /&gt;
** Upload&lt;br /&gt;
* Modules (Each module can be disabled separately)&lt;br /&gt;
* Blocks (Each block available in the app can be disabled separately)&lt;br /&gt;
&lt;br /&gt;
===Custom menu items===&lt;br /&gt;
Additional items can be added to the app main menu (the more menu), such as a link to a different grade book.&lt;br /&gt;
&lt;br /&gt;
In order to do so go to &amp;quot;Site administration &amp;gt; Mobile features &amp;gt; Custom menu items&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Each custom menu item should have the format: item text, link URL, link-opening method and language code (optional, for displaying the item to users of the specified language only), icon (optional, the name of the icon from https://ionicons.com) separated by pipe characters.&lt;br /&gt;
&lt;br /&gt;
Possible link-opening methods are:&lt;br /&gt;
* app - for linking to an activity supported by the app i.e. almost all activity types, as listed in [[Moodle Mobile features]].&lt;br /&gt;
* inappbrowser - for linking to external URLs or site functionalities not supported by the app. The link will open in a browser inside the app overlaying the complete screen.&lt;br /&gt;
* browser - as for inappbrowser except that the link will instead open in the device default browser outside the app.&lt;br /&gt;
* embedded - as for inappbrowser except that the link will instead open in an iframe in a new page in the app. (For this option you may need to enable the admin setting &amp;quot;Allow frame embedding&amp;quot; (allowframembedding)&lt;br /&gt;
Tip: If you add a custom menu item and save changes, then it doesn&#039;t appear in the app main menu, double check that the item is correctly formatted.&lt;br /&gt;
&lt;br /&gt;
Please, note that if custom menu items have the same URL, same link-opening method, and same language only the first custom menu item will be shown.&lt;br /&gt;
&lt;br /&gt;
Please, note that if the app is using a language not indicated in the previous list, the first language in the list will be used. (So if you have a custom menu item in English (en) and French (fr), and the app is using Spanish the user will still see that custom menu item in English)&lt;br /&gt;
&lt;br /&gt;
If you want options tied to a language, you can append _only to the language code, for example:&lt;br /&gt;
en_only&lt;br /&gt;
es_only, will display the custom menu item only when the app language is English or Spanish.&lt;br /&gt;
&lt;br /&gt;
Example of a menu item (it will display a home icon followed by Academy information linking to the URL indicated):&lt;br /&gt;
 Academy information|https://yoursite.com/mod/page/view.php?id=X |app|en|home&lt;br /&gt;
&lt;br /&gt;
===Responsive menu items===&lt;br /&gt;
From 3.7 onwards menu items on bottom tabs are moved to the side of the screen on big screens. Also the number of items displayed on the menu may vary:&lt;br /&gt;
* On small screens (usually phones) from 2 to 5 items will be displayed depending on the size of the screen.&lt;br /&gt;
* On big screens (usually tablets an desktop version) more than 2 items will be displayed without limit.&lt;br /&gt;
If &#039;&#039;&#039;Responsive menu items&#039;&#039;&#039; is selected in Disabled features items will be displayed in side of bottom anyway but 5 items will be displayed in all cases without depending on the size of the screen.&lt;br /&gt;
===Custom language strings ===&lt;br /&gt;
Words and phrases displayed in the app can be customised via the &amp;quot;Site administration &amp;gt; Mobile app features &amp;gt; Custom language strings&amp;quot; (customlangstrings) setting.&lt;br /&gt;
&lt;br /&gt;
Enter each custom language string on a new line with format: string identifier, custom language string and language code, separated by pipe characters. For example:&lt;br /&gt;
 core.user.student|Learner|en&lt;br /&gt;
 core.user.student|Aprendiz|es&lt;br /&gt;
The complete list of string identifiers is listed in https://latest.apps.moodledemo.net/assets/lang/en.json&lt;br /&gt;
&lt;br /&gt;
The string identifier is before the colon. &lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;core.user.student&amp;quot;: &amp;quot;Student&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
means that the string &amp;quot;Student&amp;quot; has string identifier &amp;quot;core.user.student&amp;quot;.&lt;br /&gt;
==Analytics and stats==&lt;br /&gt;
&lt;br /&gt;
===Usage statistics from your Moodle site===&lt;br /&gt;
&lt;br /&gt;
To retrieve information about the Moodle app usage, site administrators and teachers can check the system, course or activity logs.&lt;br /&gt;
&lt;br /&gt;
Among the log filters, there is a field called &amp;quot;All sources&amp;quot; with an option &amp;quot;Web Service/ws&amp;quot; that can be used to filter the entry logs generated by the mobile application.&lt;br /&gt;
&lt;br /&gt;
You can compare the number of log entries generated by the &amp;quot;Web&amp;quot; versus &amp;quot;Web Service&amp;quot; (mobile app) to have an overall idea about how your users use the platform.&lt;br /&gt;
&lt;br /&gt;
Please, notice that if you have custom &amp;quot;Web Services&amp;quot; or an installed plugin that uses Web Services, you will also see entries for them under the same filter.&lt;br /&gt;
&lt;br /&gt;
If you have access to the site database, the table &amp;quot;external_tokens&amp;quot; has a &amp;quot;lastaccess&amp;quot; timestamp field that could be used to obtain active users of the app every day.&lt;br /&gt;
&lt;br /&gt;
===Integration with Matomo analytics===&lt;br /&gt;
Note: This feature is available for [https://apps.moodle.com Premium app plans and Branded Moodle Apps]. To use this integration, you will need to have your own instance of Matomo. &lt;br /&gt;
&lt;br /&gt;
Matomo is an open source web analytics tool that helps you monitor traffic to your Moodle site, including app activity. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Connecting to your Matomo instance in the Apps portal&#039;&#039;&#039;&lt;br /&gt;
[[File:Captura de pantalla 2023-11-14 a las 12.03.36.png|thumb|Moodle App Matomo Integration set up]]&lt;br /&gt;
To use Matomo to track app activity on your Moodle site, you will need to have your own instance of Matomo analytics, and to add your Moodle site as one of your measurable websites (see instructions on [https://matomo.org/faq/how-to/create-and-manage-websites/ Matomo’s website]). Then, follow these steps:&lt;br /&gt;
# Log in to the [https://apps.moodle.com Apps portal]. &lt;br /&gt;
# Go to &#039;&#039;&#039;App customisation&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;Analytics&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;Matomo analytics&#039;&#039;&#039;.&lt;br /&gt;
# Check &#039;&#039;&#039;Track app activity&#039;&#039;&#039;.&lt;br /&gt;
# Add your &#039;&#039;&#039;Matomo URL&#039;&#039;&#039; - that&#039;s the URL of your Matomo instance, for example https://yoursite.matomo.cloud.&lt;br /&gt;
# Add the &#039;&#039;&#039;Website ID&#039;&#039;&#039; associated with your Moodle site in Matomo. To obtain this ID:&lt;br /&gt;
## Log in to your Matomo account.&lt;br /&gt;
## Go to &#039;&#039;&#039;Administration&#039;&#039;&#039; using the gear icon on the right side of the top navigation bar.&lt;br /&gt;
## On the left-hand panel, select &#039;&#039;&#039;Websites&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;Manage&#039;&#039;&#039;.&lt;br /&gt;
## In your list of measurables, find the Moodle site in which you want to track app activity. The &#039;&#039;&#039;ID&#039;&#039;&#039; of the measurable is the &#039;&#039;&#039;Website ID&#039;&#039;&#039; you need to enter in the apps portal.&lt;br /&gt;
# Click &#039;&#039;&#039;Save changes&#039;&#039;&#039; to establish the connection and start tracking app activity.&lt;br /&gt;
# If you&#039;d like to stop tracking at any time, uncheck &#039;&#039;&#039;Track app activity&#039;&#039;&#039; and then save changes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To filter Matomo data to isolate mobile app usage from Moodle site interactions, follow these steps:&lt;br /&gt;
[[File:Captura de pantalla 2023-11-14 a las 12.05.05.png|thumb|Moodle App Matomo referrer set-up]]&lt;br /&gt;
# Log in to your Matomo account.&lt;br /&gt;
# Click &#039;&#039;&#039;All visits&#039;&#039;&#039; at the top of the page&lt;br /&gt;
# Create a custom segment by applying this configuration: “Referrer URL” “is” “https://moodlemobile”&lt;br /&gt;
# To only see Moodle site interactions, do the following: “Referrer URL” “is not” “https://moodlemobile”&lt;br /&gt;
&lt;br /&gt;
Please notice that the integration with Matomo does not work offline.&lt;br /&gt;
&lt;br /&gt;
===Google Analytics for Firebase===&lt;br /&gt;
Only available when purchasing a [https://moodle.com/branded-app/ Branded Moodle App]. &lt;br /&gt;
&lt;br /&gt;
Google Analytics for Firebase is a free tool that provides valuable insights and data about how users interact with mobile apps.&lt;br /&gt;
&lt;br /&gt;
Please notice that the integration with Google Analytics for Firebase does not work offline.&lt;br /&gt;
&lt;br /&gt;
===Google Play and Apple App Store statistics===&lt;br /&gt;
&lt;br /&gt;
If you have a custom mobile application, you can access statistics about app downloads and user engagement such as weekly active users and devices.&lt;br /&gt;
&lt;br /&gt;
Google play:&lt;br /&gt;
# Go to Google Play console: https://play.google.com/console&lt;br /&gt;
# Select your app from the list.&lt;br /&gt;
# Navigate to specific tabs, such as &amp;quot;Statistics&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apple App Store:&lt;br /&gt;
# Log in to App Store Connect: https://appstoreconnect.apple.com/&lt;br /&gt;
# Go to &amp;quot;App Analytics&amp;quot; from the dashboard.&lt;br /&gt;
&lt;br /&gt;
==Web services token duration==&lt;br /&gt;
From Moodle 3.4 onwards, an admin can set how long a web services token created by a user (for example via the mobile app) is valid. (In previous versions of Moodle a token was valid for 3 months.)&lt;br /&gt;
&lt;br /&gt;
The setting that dictates the previous &#039;User created token duration&#039; (tokenduration) can be found under the Security section.&lt;br /&gt;
==App&#039;s cache==&lt;br /&gt;
The app caches WebService requests to decrease data usage and increase the app&#039;s speed. When the app needs to get some data from Moodle, it will use a cached request as long as it isn&#039;t expired.&lt;br /&gt;
&lt;br /&gt;
This cache was improved in Moodle App 3.7.0, now there are several cache times depending on the WS being called. This means that some requests will expire more often than others. Also, if the user isn&#039;t using a WiFi connection, the expiration time will also be longer to decrease the data usage. These cache times cannot be configured using a Moodle setting.&lt;br /&gt;
==See also==&lt;br /&gt;
* [https://moodle.academy/course/view.php?id=100 Moodle App Configuration]- a free self-paced course for admins on Moodle Academy.&lt;br /&gt;
* [[Moodle Mobile FAQ]] for other administration-related mobile app questions.&lt;br /&gt;
* [[Moodle app security]]&lt;br /&gt;
* [https://docs.moodle.org/dev/Moodle%20Mobile%20debugging%20WS%20requests dev:Moodle Mobile debugging WS requests] - a guide to helping you find and report problems with the Moodle Mobile app on your site&lt;br /&gt;
* [https://docs.moodle.org/dev/%20Moodle%20Mobile%20Roadmap dev: Moodle Mobile Roadmap]&lt;br /&gt;
* [https://docs.moodle.org/dev/Moodle%20Mobile%20release%20notes dev:Moodle Mobile release notes]&lt;br /&gt;
* [https://docs.moodle.org/dev/Moodle%20Mobile Moodle Mobile developer docs]&lt;br /&gt;
* [[Moodle Mobile availability plugin]]&lt;br /&gt;
* [[Mobile web services]]&lt;br /&gt;
[https://docs.moodle.org/fr/ Guide mobile pour administrateurs]&lt;br /&gt;
[https://docs.moodle.org/es/Moodle app guía para administradores]&lt;br /&gt;
[https://docs.moodle.org/de/Moodle App - Anleitung für Administrator/innen]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_FAQ&amp;diff=150678</id>
		<title>Moodle app FAQ</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_FAQ&amp;diff=150678"/>
		<updated>2024-12-20T09:57:48Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* I can&amp;#039;t get the app to work. What can I do? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
==Students==&lt;br /&gt;
===How can I log in?===&lt;br /&gt;
To log in to your Moodle site with the Moodle App, you need the URL (web address) of the Moodle site that you’re trying to access. If your organisation has Search enabled, you can try searching by the name of your organisation or eLearning site.&lt;br /&gt;
&lt;br /&gt;
If your organisation allows you to log in via QR code, you’ll find the QR code at the bottom of your user profile on your Moodle site. You just need to press “Scan QR code” on the app, scan the QR code on your profile and you’ll be logged in automatically.&lt;br /&gt;
&lt;br /&gt;
If your organisation allows you to log in using face recognition or fingerprint, you can activate this in the App, going to User account &amp;gt; Preferences. You’ll need to have biometric authentication enabled in your own device’s settings. &lt;br /&gt;
===Who can I contact for help with the app?===&lt;br /&gt;
If you’re a student and need help with issues related to logging in, registering to a Moodle site or trouble connecting to the app, you should contact your school or learning organisation. For example, one of your teachers, or the person who takes care of Moodle.&lt;br /&gt;
Moodle HQ make the Moodle software and the Moodle app, but they don’t manage nor have access to your Moodle site or your user data.&lt;br /&gt;
===How can I get the Moodle app?===&lt;br /&gt;
You can download the Moodle App for free from [https://play.google.com/store/apps/details?id=com.moodle.moodlemobile Google Play] and the Apple [https://itunes.apple.com/app/moodle-mobile/id633359593?mt=8 App Store]. You will find it by searching “Moodle”, and the author/owner is “Moodle Pty Ltd”.&lt;br /&gt;
If you are unable to download the app from Google play, please visit [https://download.moodle.org/mobile/ Moodle app downloads]&lt;br /&gt;
===I can&#039;t get the app to work. ===&lt;br /&gt;
To ensure that the Moodle app functions properly, please double-check that you have correctly entered the URL address of the Moodle site you are using (please visit [https://docs.moodle.org/en/Moodle_app_FAQ#I_can%E2%80%99t_find_my_Moodle_site_in_the_app. I can’t find my Moodle site in the app]). If you are experiencing difficulties connecting to your site, please contact the person or team who takes care of Moodle in your school or learning organisation. Please note the app only works with Moodle sites that have been set up to allow it, and that are running on at least Moodle 3.5.&lt;br /&gt;
&lt;br /&gt;
===I can’t find my Moodle site in the app. ===&lt;br /&gt;
To find your Moodle site on the app login screen, try searching for the name of your school or learning organisation.&lt;br /&gt;
&lt;br /&gt;
If your school or organisation doesn’t appear in the search, you can try searching by your Moodle site URL address instead. If you don’t know the address of your Moodle site, here’s how you can find it:&lt;br /&gt;
# Open a web browser (like Chrome or Safari) and go to your school’s Moodle site login page.&lt;br /&gt;
# At the top of the page in the address bar, you&#039;ll see the URL address of your Moodle site, e.g. “campus.example.edu”. [[File:FAQ I cant find my site 1.png|alt=URL|thumb|none|&#039;&#039;campus.example.edu&#039;&#039;]]&lt;br /&gt;
# Copy the URL (don’t copy the /login nor what comes after), paste it into Your site in the app, then select Connect to your site. [[File:FAQ I cant find my site 2.png|alt=Adding an URL to the app|thumb|none|Adding an URL to the app]]&lt;br /&gt;
# Now you can log in to your site with your username and password.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you tried searching by URL address and still can’t find your Moodle site, please get in touch with the person who takes care of Moodle in your school or learning organisation.&lt;br /&gt;
===I can’t log in with the app===&lt;br /&gt;
To log in to your Moodle site using the app, you first need to connect to your school’s Moodle site (view [[I can’t find my Moodle site in the app]] if you can’t find your site).&lt;br /&gt;
&lt;br /&gt;
Once you’ve connected to your Moodle site, you should be able to log in with your usual username and password.&lt;br /&gt;
&lt;br /&gt;
If you forgot your username or password, select the option &#039;&#039;&#039;Forgotten your username or password?&#039;&#039;&#039;. If you still have trouble logging in or can’t see any options for retrieving your username or password, please get in touch with the person who takes care of Moodle in your school or learning organisation.&lt;br /&gt;
===I see an error message when I try to use the app===&lt;br /&gt;
If you see an error message that prevents you from using the app, please get in touch with the person who takes care of Moodle in your school or learning organisation. &lt;br /&gt;
&lt;br /&gt;
Some of the most common errors that your school or learning organisation will be able to fix are:&lt;br /&gt;
* Your token is expired or not valid.&lt;br /&gt;
* An error mentioning the parameter “includestealthmodules”.&lt;br /&gt;
* The web service function is not available.&lt;br /&gt;
* A message about site maintenance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you’re experiencing any of these errors, contact your school or learning organisation for help.&lt;br /&gt;
===What permissions does the app require?===&lt;br /&gt;
The app requires the following permissions:&lt;br /&gt;
* Record audio - for uploading to your Moodle site&lt;br /&gt;
* Read and modify the contents of your SD card - for content to be downloaded to your SD Card for offline access.&lt;br /&gt;
* Network access - to be able to connect with your Moodle site and check if you are connected, and if not to switch to offline mode.&lt;br /&gt;
* Run at startup - to receive local notifications even when the app is running in the background.&lt;br /&gt;
* Prevent phone from sleeping - to receive push notifications anytime.&lt;br /&gt;
===What are the minimum device requirements to use the Moodle app?===&lt;br /&gt;
Android devices: Require Android 7.0 or later. (Users with Android 5 and 6 can still use version 4.3, but they will not receive any new updates.)&lt;br /&gt;
&lt;br /&gt;
iOS devices (iPhones/iPads): Require iOS 13 or later. (Please note the app was only tested on versions iOS 14 and onward.)&lt;br /&gt;
&lt;br /&gt;
===I can&#039;t see my course on the app. What do I do?===&lt;br /&gt;
Check with your course tutor that you are correctly enrolled.&lt;br /&gt;
=== Why can&#039;t I upload my assignment on the app?===&lt;br /&gt;
If you’re experiencing any issue uploading assignment, please contact your school or learning organisation for help.&lt;br /&gt;
===Why can&#039;t I sometimes access the app or submit anything to it?===&lt;br /&gt;
This could be because of interruptions in your internet connection. Wait a while and try again. If you continue to have problems, contact your school or learning organisation for help.&lt;br /&gt;
===Is there a space limit on my files?===&lt;br /&gt;
Assignments will have a size limit which you can see, those are set by your teachers. For other space limit questions, check with your your school or learning organisation .&lt;br /&gt;
===When are activities completed offline synchronized?===&lt;br /&gt;
See [[Moodle app synchronization]].&lt;br /&gt;
===Why the site is asking for my username and password when an activity is opened in the browser?===&lt;br /&gt;
For security reasons, between auto-logins you must wait 6 minutes (this should not be a problem because most of the browsers will keep your Moodle session open).&lt;br /&gt;
In recent Moodle versions, the previous value can be configured in Site Administration &amp;gt; Mobile app authentication &amp;gt;  Minimum time between auto-login requests&lt;br /&gt;
&lt;br /&gt;
=== The Moodle app might seem slow (especially on Android devices) ===&lt;br /&gt;
There are several factors that could be causing this issue. It could be due to outdated or underperforming devices, or perhaps there are too many applications open, causing limited memory in your mobile device.&lt;br /&gt;
&lt;br /&gt;
To troubleshoot this problem, we recommend trying the application with our demo site: https://school.moodledemo.net. Simply use the username &amp;quot;student&amp;quot; and the relevant password to access the site. If you find that the navigation and overall experience with the app are improved, then the issue may be at the server level. In this case, we suggest contacting your school or learning organisation for further assistance.&lt;br /&gt;
&lt;br /&gt;
=== The Moodle app restarts/ closes / reopenes itself ===&lt;br /&gt;
This is likely because there are too many apps opened on your mobile device. Mobile devices have a finite amount of memory, and the device&#039;s memory manager is responsible for determining which applications to keep open and which to close.&lt;br /&gt;
To optimise your device&#039;s performance, we recommend closing all applications that are not currently in use. This will free up valuable memory and ensure that your device runs smoothly.&lt;br /&gt;
===I use LineageOS and I&#039;m having problems using the app===&lt;br /&gt;
LineageOS uses a different WebView implementation not compatible vith the app. You need to install &amp;quot;Android System WebView&amp;quot; from Google Play (or via a trusted apk) and enabling it via Settings &amp;gt; Developer options &amp;gt; WebView implementation.&lt;br /&gt;
===H5P packages and external content embedded via iframes are not working on iOS ===&lt;br /&gt;
This is caused by a new feature of iOS 14 called ITP that blocks cookies for external sites embedded in the app (the H5P content is played embedded in an iframe pointing to the Moodle website) unless the user enables a setting in the app to allow those cookies.&lt;br /&gt;
&lt;br /&gt;
The quick workaround is to enable the setting &amp;quot;Allow Cross-Website Tracking&amp;quot; available via the Settings app (look for the Moodle app, at the bottom) on your iPhone/iPad with iOS 14.&lt;br /&gt;
===I cannot reproduce audio that was recorded on browser on iOS devices (iPhones and iPads)===&lt;br /&gt;
This behaviour is related to this Moodle LMS bug: https://tracker.moodle.org/browse/MDL-80114&lt;br /&gt;
&lt;br /&gt;
=== I don&#039;t receive calendar notifications (reminders) when using Android 12 or above === &lt;br /&gt;
&lt;br /&gt;
In order to receive calendar notifications you need to allow alarms and reminders for the Moodle app. To do this:&lt;br /&gt;
* Open Android Settings and go to the Moodle app settings. Another way to reach these settings is by long-clicking the Moodle app icon and pressing &amp;quot;App info&amp;quot;.&lt;br /&gt;
* Make sure that Notifications are enabled.&lt;br /&gt;
* If you see a section called &amp;quot;Alarms &amp;amp; reminders&amp;quot;, make sure it is Allowed (this setting is disabled by default in Android 14+).&lt;br /&gt;
&lt;br /&gt;
==Teachers==&lt;br /&gt;
===How can I enable videos in my course to be downloaded?===&lt;br /&gt;
See the section &#039;Media download for offline usage&#039; in [[Creating Moodle-app-friendly courses]].&lt;br /&gt;
===Which course format is it best to use?===&lt;br /&gt;
Topics or weekly course format is best suited to mobile devices.&lt;br /&gt;
===How do I make YouTube links open automatically in the app?===&lt;br /&gt;
Add YouTube links as a [[URL resource]].&lt;br /&gt;
===Why can&#039;t my students see their courses?===&lt;br /&gt;
If you or an administrator have correctly enrolled them in a course, they can see it in their mobile app. If they are correctly enrolled but can still not see their course, ask them to check with your Moodle site administrator.&lt;br /&gt;
=== I can&#039;t mark assignments in the app===&lt;br /&gt;
If you are experiencing problems when grading, please review that you are using the correct decimal separators (if the app interface is in English, you must use a period).&lt;br /&gt;
===What communications tools can I use in the app to engage with my learners?===&lt;br /&gt;
See [[Mobile app notifications]]. Chat, forums and messaging are all supported by the app.&lt;br /&gt;
===My Vimeo videos are not playing in the app===&lt;br /&gt;
In older versions of Moodle (pre-Moodle 3.7), it may be necessary to activate the &amp;quot;Allow frame embedding&amp;quot; admin setting. However, for those using Moodle version 3.7 or later, it is important to check whether a Proxy/Firewall/Web Server security module is setting the X-Frame-Options header in your HTTP request responses. If this is the case, it is recommended to deactivate this feature as it may cause conflicts, as Moodle already sets this header by default. &lt;br /&gt;
&lt;br /&gt;
This setting is typically found in any of these configuration files .htaccess, httpd.conf or VirtualHost. To disable it, you can just use: Header always unset X-Frame-Options &lt;br /&gt;
&lt;br /&gt;
You may also use Bootstrap responsive classes: https://getbootstrap.com/docs/4.0/utilities/embed/, for example, &amp;lt;div class=&amp;quot;embed-responsive&amp;quot;&amp;gt;&lt;br /&gt;
For older versions, see this forum discussion with a workaround: https://moodle.org/mod/forum/discuss.php?d=327342&lt;br /&gt;
&lt;br /&gt;
If the issue is with vimeo videos on Moodle sites 3.10 or 3.11, please update the Moodle site to the latest version possible (at least 3.10.10 or 3.11.6). (See https://tracker.moodle.org/browse/MDL-74042)&lt;br /&gt;
===ReCaptcha doesn&#039;t work on my site===&lt;br /&gt;
In older versions of Moodle (pre-Moodle 3.7), it may be necessary to activate the &amp;quot;Allow frame embedding&amp;quot; admin setting. However, for those using Moodle version 3.7 or later, it is important to check whether a Proxy/Firewall/Web Server security module is setting the X-Frame-Options header in your HTTP request responses. If this is the case, it is recommended to deactivate this feature as it may cause conflicts, as Moodle already sets this header by default. &lt;br /&gt;
===H5P packages don&#039;t work on my site===&lt;br /&gt;
In older versions of Moodle (pre-Moodle 3.7), it may be necessary to activate the &amp;quot;Allow frame embedding&amp;quot; admin setting. However, for those using Moodle version 3.7 or later, it is important to check whether a Proxy/Firewall/Web Server security module is setting the X-Frame-Options header in your HTTP request responses. If this is the case, it is recommended to deactivate this feature as it may cause conflicts, as Moodle already sets this header by default. &lt;br /&gt;
&lt;br /&gt;
This setting is typically found in any of these configuration files .htaccess, httpd.conf or VirtualHost. To disable it, you can just use: Header always unset X-Frame-Options &lt;br /&gt;
&lt;br /&gt;
This can also happen when you are using the non-official H5P plugin (mod_hvp), in that case you will see the following message: This site is not configured properly for displaying mobile H5P content. Please contact a site administrator so they can apply the above suggested configuration changes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cookies issues&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If your site uses HTTPS please ensure that the &amp;quot;Secure cookies only&amp;quot; (cookiesecure) setting under Site administration &amp;gt; HTTP security is enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency errors&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the following error appears &amp;quot;Missing dependency H5P.Editor. something X required by H5P.Editor. something Y&amp;quot;. H5P packages need to include all the libraries (dependencies) they use so the package is self-contained. But sometimes packages might be missing at least one dependency.&lt;br /&gt;
&lt;br /&gt;
In order to fix this, you could do the following:&lt;br /&gt;
&lt;br /&gt;
Open Moodle’s Content Bank (from the link in the problematic H5P settings page) and upload your H5P package there, once uploaded, you will see the H5P package and an “Edit” button, click on that button so the editor opens, scroll down and click “Save”.&lt;br /&gt;
Now, you can replace the problematic H5P with this new one, for this, you can just include it from the Content bank by opening the activity settings page and the file picker.&lt;br /&gt;
=== I use a Moodle plugin but the app says it is not supported ===&lt;br /&gt;
You should contact the plugin developer and point him to this documentation: https://docs.moodle.org/dev/Moodle_Mobile_Remote_addons where it is explained how to add support to plugins in the Mobile app.&lt;br /&gt;
&lt;br /&gt;
There is a list of Moodle plugins supported by the app here: https://moodle.org/plugins/browse.php?list=award&amp;amp;id=6&lt;br /&gt;
=== I have problems playing SCORM packages ===&lt;br /&gt;
This might be caused because:&lt;br /&gt;
* The SCORM was added using an advanced option (remote imsmanifest.xml packages or file system repository unzipped SCORMS)&lt;br /&gt;
* The SCORM ZIP file was created using a tool that does not create standardised ZIP files (for example, zip files containing the inverted path separator &amp;quot;\&amp;quot; will not work on Android)&lt;br /&gt;
Please refer to [[Moodle app SCORM player]] for additional information.&lt;br /&gt;
=== My quizzes or lessons are not working offline ===&lt;br /&gt;
You need to edit the quiz or lesson activity settings and enable the &amp;quot;Allow lesson/quiz to be attempted offline using the mobile app&amp;quot; configuration option.&lt;br /&gt;
=== Maths notation is not displaying correctly in the app ===&lt;br /&gt;
If you are having issues with MathJax, please enable the [[TeX notation filter]] also.&lt;br /&gt;
&lt;br /&gt;
If you have both filters enabled, please leave MathJax above TeX so it is always processed before TeX.&lt;br /&gt;
=== How can I disable text selection / copy in the app? ===&lt;br /&gt;
You can create a remote theme and add some custom CSS rules to disable it, see https://docs.moodle.org/dev/Moodle_Mobile_Themes&lt;br /&gt;
=== My images, videos or audios stop working after the first time ===&lt;br /&gt;
Please make sure the URL you&#039;re using on the media file doesn&#039;t have any redirect (e.g. http to https), always try to use the final URL. There&#039;s a bug in the library we use to download those files, it doesn&#039;t work when downloading files with redirects. We have plans to remove that library from the app, but since then please always try to use URLs without redirects.&lt;br /&gt;
&lt;br /&gt;
==Administrators==&lt;br /&gt;
=== What plans are available for the Moodle app? ===&lt;br /&gt;
There are three main plans available for the Moodle app: Free, Pro, and Premium, each offering different features and benefits. In addition to the three main plans, there is also a Branded Moodle App (BMA) option. The BMA is a custom-built app that is branded to your organization. Learn more in [[Moodle app plans]].&lt;br /&gt;
=== How can I have my site listed in the Moodle app site finder? ===&lt;br /&gt;
Please refer to our [[Moodle app guide for admins]] for instructions.&lt;br /&gt;
=== How can I debug errors in the app? ===&lt;br /&gt;
Go to the More tab and then to Settings &amp;gt; General. Enable &amp;quot;Display debug messages&amp;quot;. This will show an explanatory message when an error occurs, alternatively, you can do a full debugging via: https://docs.moodle.org/dev/Moodle_Mobile_debugging_WS_requests&lt;br /&gt;
&lt;br /&gt;
=== How can I disable features in the app? ===&lt;br /&gt;
Please go to &#039;&#039;Site administration &amp;gt; Mobile features &amp;gt; Disabled features&#039;&#039; and select all the features you want to disable.&lt;br /&gt;
&lt;br /&gt;
To select multiple features you will have to use Ctrl (Cmd in Mac) + Click&lt;br /&gt;
&lt;br /&gt;
=== How can I add custom menu items in the app? ===&lt;br /&gt;
You can add custom additional menu items in the &amp;quot;more&amp;quot; menu of the app, the one represented by three consecutive dots.&lt;br /&gt;
&lt;br /&gt;
Please go to &#039;&#039;Site administration &amp;gt; Mobile features &amp;gt; Custom menu items&#039;&#039; and follow the instructions in [[Moodle_app_guide_for_admins#Custom_menu_items|Moodle app guide for admins]] for the correct format to use.&lt;br /&gt;
&lt;br /&gt;
As a quick example:&lt;br /&gt;
  Academy information|https://yoursite.com/mod/page/view.php?id=X |app|en|home&lt;br /&gt;
&lt;br /&gt;
=== How can I customise the language strings in the app? ===&lt;br /&gt;
&lt;br /&gt;
Please go to &#039;&#039;Site administration &amp;gt; Mobile features &amp;gt; Custom language strings&#039;&#039; and follow the instructions in [[Moodle_app_guide_for_admins#Custom_language_strings|Moodle app guide for admins]] for the format to use.&lt;br /&gt;
&lt;br /&gt;
As a quick example:&lt;br /&gt;
 core.user.student|Learner|en&lt;br /&gt;
 core.user.student|Aprendiz|es&lt;br /&gt;
&lt;br /&gt;
=== I can connect with my iPhone (or iPad) but not with my Android phone ===&lt;br /&gt;
This usually happens when the site is using https and the certificate is not correctly configured or it is using an old protocol, please use these pages to check this certificate: https://www.sslshopper.com/ssl-checker.html, https://www.geocerts.com/ssl_checker, and https://www.ssllabs.com/ssltest/analyze.html&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The certificate of this site cannot be trusted by your device: TLS connection could not be established: javax.net.ssl.SSLHandshakeException&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This error could be caused because in any of the certification paths there is a certificate using SHA-1. Starting Android 10 this is not allowed, more information here: https://developer.android.com/privacy-and-security/security-ssl&lt;br /&gt;
&lt;br /&gt;
You could easily check the previous using https://www.ssllabs.com/ssltest/analyze.html and going to the Certification Paths -&amp;gt; Android section, if there is any mention to SHA-1 this could be the cause. You will need to upgrade your certificates to avoid using SHA-1.&lt;br /&gt;
&lt;br /&gt;
=== My certificate is fine but I still can&#039;t connect ===&lt;br /&gt;
This is usually a server configuration problem caused by any of the following server configuration issues:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Access to XMLHttpRequest at &#039;https://yoursite/webservice/rest/server.php?moodlewsrestformat=json&amp;lt;nowiki/&amp;gt;...&#039; from origin &#039;&amp;lt;nowiki&amp;gt;http://localhost&#039;&amp;lt;/nowiki&amp;gt; has been blocked by CORS policy: No &#039;Access-Control-Allow-Origin&#039; header is present on the requested resource.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is because a Proxy/Firewall/Web Server security module is removing automatically the Access-Control-Allow-Origin: * header that Moodle sets to allow Web Service requests. &lt;br /&gt;
&lt;br /&gt;
It is totally secure to remove that Proxy/Firewall/Web Server rule/configuration because that header is only set by Moodle when needed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;access-control-allow-origin cannot contain more than one origin&amp;quot;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
iOS and Android apps do not allow the following header to contain more than one item: &amp;quot;Access-Control-Allow-Origin&amp;quot;. For example, a header like this: Access-Control-Allow-Origin: *, https://mydomain.com will cause problems.&lt;br /&gt;
&lt;br /&gt;
This HTTP header is not valid, according to the specification you can only specify a domain or a &amp;quot;*&amp;quot;:&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin&lt;br /&gt;
&lt;br /&gt;
Please, review if you have a Proxy/Firewall/Web Server adding automatically values to that HTTP header.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Security rules are blocking requests using the Accept-Charset header&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some security rules, such as OWASP ModSecurity, are blocking requests with this header that is sent by the Moodle App. In future releases of the app, this problem will be fixed. But in the meantime, you should disable it. Find more about this in MOBILE-4342.&lt;br /&gt;
=== My certificate is fine but the Moodle app is detecting http instead of https ===&lt;br /&gt;
If the Moodle app is detecting http instead of https, please revise config.php (check &amp;quot;wwwroot&amp;quot; as well as &amp;quot;httpswwwroot&amp;quot;)&lt;br /&gt;
===After updating Moodle LMS to a recent version my users cannot login===&lt;br /&gt;
This only applies to sites that are configured to use log in via an embedded browser pointing to their Moodle site.&lt;br /&gt;
This behaviour could be related to this Moodle LMS issue: https://tracker.moodle.org/browse/MDL-81897.&lt;br /&gt;
There are several ways to fix this issue:&lt;br /&gt;
# Upgrade their Moodle site to any of the indicated version in the issue that will solve the problem&lt;br /&gt;
# Manually apply the patch here: https://github.com/jleyva/moodle/compare/462d5f04a8...MDL-81897-master&lt;br /&gt;
# Immediate workaround: Change the app authentication so it will launch in a separate browser, by going to Site admin &amp;gt; Mobile app authentication &amp;gt; Type of login (and select the option that mentions external/system browser), remember to Save Changes&lt;br /&gt;
We’d recommend doing 3) that will immediately address the issue that is affecting new logins.&lt;br /&gt;
===I can&#039;t get the app to work. What can I do?===&lt;br /&gt;
Assuming you have enabled mobile services on your site, please check:&lt;br /&gt;
# If your site uses an SSL certificate, it must be a trusted certificate, not self-signed. Please use these tools or a similar one to check that your certificate is valid: [https://www.sslshopper.com/ssl-checker.html SSL Checker], [https://www.geocerts.com/ssl_checker SSL Checker], and [https://www.ssllabs.com/ssltest/analyze.html SSL Server Test]. All the checks must be ok, including the &amp;quot;Certificate Chain Complete&amp;quot;. Otherwise the app might work on iOS but not on Android.&lt;br /&gt;
# Make sure that the &amp;quot;Access-Control-Allow-Origin&amp;quot; header only contains one item. For example, a header like this: Access-Control-Allow-Origin: *, &amp;lt;nowiki&amp;gt;https://mydomain.com&amp;lt;/nowiki&amp;gt; will cause problems.&lt;br /&gt;
# [[Debugging]] is disabled (in &#039;&#039;Site administration &amp;gt; Development &amp;gt; Debugging&#039;&#039;)&lt;br /&gt;
# The ADOdb debug option is disabled if you are using the external database auth or enrolment plugin (in &#039;&#039;Plugins &amp;gt; Authentication &amp;gt; External database&#039;&#039; and in &#039;&#039;Plugins &amp;gt; Enrolment &amp;gt; External database&#039;&#039;).&lt;br /&gt;
# SHA-1 https certificates are not supported anymore in Chrome, this means that the Android version of the app won&#039;t work for your site. If your site doesn&#039;t work in desktop Chrome or Chromium it won&#039;t work in the Android app. See https://blog.chromium.org/2014/09/gradually-sunsetting-sha-1.html for more information&lt;br /&gt;
# If you are using IIS check that Anonymous access is not disabled for the /webservice directory.&lt;br /&gt;
# If you are using a web application firewall like AWS WAF, StackPath, Barracuda, Cloudflare, Juniper, etc... try to temporary disable it to check if that&#039;s the cause. If so, you&#039;ll have to whitelist these endpoints: login/token.php, webservice/*, lib/ajax/*, media/player/vimeo/wsplayer.php and /tokenpluginfile.php&lt;br /&gt;
You can also add WAF rules to allow traffic by detecting the app user agent such as: (http.user_agent contains &amp;quot;MoodleMobile&amp;quot;)&lt;br /&gt;
If you still have a problem, please post in the [https://moodle.org/mod/forum/view.php?id=7798 Moodle for mobile forum].&lt;br /&gt;
&lt;br /&gt;
If the issue started after updating Moodle LMS please visit [[After updating Moodle LMS to a recent version my users cannot login]].&lt;br /&gt;
&lt;br /&gt;
=== I cannot access with old users, but I can with recently created ones! ===&lt;br /&gt;
Please, do a &amp;quot;Purge all caches&amp;quot; via the Moodle administration settings, this will solve the problem.&lt;br /&gt;
===I can&#039;t view the courses tab as an administrator===&lt;br /&gt;
The Moodle app only displays courses you are enrolled in. If you want to view a course as an admin, you need to enrol in it.&lt;br /&gt;
===My Moodle site uses a SSO auth method (Shibboleth, CAS, Google OAuth, etc) and the app is not working===&lt;br /&gt;
See the section &#039;Mobile authentication&#039; in the [[Moodle app guide for admins]] for details of how to configure it.&lt;br /&gt;
&lt;br /&gt;
If configured the app is still not connecting: If your site uses an SSL certificate, it must be a trusted certificate, not self-signed. Please use this tool or a similar one to check that your certificate is fine: [https://www.geocerts.com/ssl_checker SSL Checker]. All the checks must be OK, including the &amp;quot;Certificate Chain Complete&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If your SSO method is unable to authenticate when using an &amp;quot;embedded browser&amp;quot; (it gives an authentication error), please check if it works with a &amp;quot;browser window&amp;quot;. If it does work with the browser window then it means your SSO is performing an HTTP redirect, and these kind of redirects aren&#039;t supported by the app (the request is redirected by the browser not passing the POST parameters). Unfortunately, this is something we cannot control in the Mobile app (it can&#039;t be handled via JavaScript). For further information, see http://stackoverflow.com/questions/228225/prevent-redirection-of-xmlhttprequest and http://stackoverflow.com/questions/4168784/ajax-redirection-handling&lt;br /&gt;
&lt;br /&gt;
There are only 2 possible solutions: set the authentication via a &amp;quot;browser window&amp;quot; instead of an embedded one (please notice this won&#039;t work in the Linux desktop app), or remove the redirect from the SSO auth method.&lt;br /&gt;
===SSO is not working with my custom auth plugin===&lt;br /&gt;
SSO should work in any plugin if the plugin handles correctly the $SESSION-&amp;gt;wantsurl, this is the way SSO works when it is launched via the app:&lt;br /&gt;
* It launchs this URL https://yourmoodle/admin/tool/mobile/launch.php?service=local_mobile&amp;amp;passport=abc in the device browser &lt;br /&gt;
* If the user is not logged in, the browser will redirect the user to the login page&lt;br /&gt;
* If the auth plugin used implements correctly the handling of the wantsurl session var, once the user has logged in, the browser should redirect back to the https://yourmoodle/admin/tool/mobile/launch.php?service=local_mobile&amp;amp;passport=abc URL that will launch the mobile app via the custom URL protocol&lt;br /&gt;
Custom auth plugins may be failing in the last step,not redirecting back to tool/mobile, this will happen only if the plugin does not support correctly the $SESSION-&amp;gt;wantsurl.&lt;br /&gt;
&lt;br /&gt;
The SAML plugin works correctly but some modifications of that plugin may not work if important lines are changed.&lt;br /&gt;
===I am having problems requesting an airnotifier access key===&lt;br /&gt;
If you have registered your site but are still unable to request an access key, please register your site on the Moodle Apps Portal https://apps.moodle.com once your site is registered there, an Airnotifier access key will be automatically generated for you.&lt;br /&gt;
=== Push notifications are not working ===&lt;br /&gt;
Please check [[Mobile app notifications#Troubleshooting]]&lt;br /&gt;
=== How notifications icon badges are updated ===&lt;br /&gt;
&#039;&#039;&#039;Android&#039;&#039;&#039;: Not all Android devices support icon badges so in some cases badges will never display numbers, also, depending on the device only a badge indicating that there are new notifications will be displayed when receiving a Push notification when the app is not in the foreground.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;iOS&#039;&#039;&#039;: The icon badge counter is only updated when the app is open and it will reflect the number of notifications pending reading or the number of message senders that sent you a message you have not read yet&lt;br /&gt;
&lt;br /&gt;
In general, for iOS the icon badge displayed number should match the one displayed at the bottom of the app (or it should be the sum of the notifications and messages badges) and is not an indicator of the number of Push notifications the user has received, it acts as a reminder of pending notifications to be read that only gets updated when the user open the apps&lt;br /&gt;
&lt;br /&gt;
There is an open issue to improve the behaviour on iOS, please watch MDL-73707&lt;br /&gt;
=== I configured &#039;QR code access&#039; to automatic login, but the app still asks for credentials  ===&lt;br /&gt;
Automatic authentication only works for Pro and Premium sites. You can see the app plans [https://moodle.com/app/ in this site].&lt;br /&gt;
&lt;br /&gt;
If you&#039;re getting an error saying that the device you&#039;re using to connect isn&#039;t in the same network as the device that displays the QR code but both devices are connected to the same network, please check the section: [[#ipmismatch:_.27Client_IP_address_mismatch.27|ipmissmatch: &#039;Client IP address mismatch&#039;]].&lt;br /&gt;
&lt;br /&gt;
=== I can log in on my Moodle site but I see a blank page or the app styles broken ===&lt;br /&gt;
This is usually because your Moodle site has a customised CSS. &lt;br /&gt;
&lt;br /&gt;
Please try leaving empty CSS (&#039;&#039;mobilecssurl&#039;&#039;) on Site administration &amp;gt; Mobile app &amp;gt; Mobile appearance. If that works, please read [https://docs.moodle.org/dev/Moodle_App_Remote_Themes Moodle App Remote Themes] and create a new CSS file using the variables mentioned there&lt;br /&gt;
&lt;br /&gt;
===The Moodle app does not connect to MoodleBox (or other internal self-hosted systems)===&lt;br /&gt;
You will need to disable SSL to make the app works, please see this forum discussion for more information: https://moodle.org/mod/forum/discuss.php?d=424353#p1739474&lt;br /&gt;
===I think I found a bug with the app. Where can I report it?===&lt;br /&gt;
# Log in to the [https://tracker.moodle.org/browse/MOBILE Moodle Mobile tracker] (you&#039;ll need to [http://tracker.moodle.org/secure/Signup%21default.jspa create a tracker account] if you&#039;ve not done so previously)&lt;br /&gt;
# Check whether the issue has already been reported by doing a [https://tracker.moodle.org/issues/?jql=project%20%3D%20MOBILE search]&lt;br /&gt;
# If not, report the bug by clicking the &#039;Create Issue&#039; link at the top right of the page, selecting &#039;Moodle app&#039; as the project&lt;br /&gt;
# Add a detailed description providing as much information as possible (Moodle version, app version, device model and operating system, etc...), then click the Create button&lt;br /&gt;
===How can I get the app in my language?===&lt;br /&gt;
[[File:setting the app lang.png|thumb|100px|Setting your language]]&lt;br /&gt;
The Moodle app automatically detects your mobile&#039;s language and displays in the same language (if the translation exists). Otherwise, you can set the app language in App settings &amp;gt; General.&lt;br /&gt;
&lt;br /&gt;
See also a post explaining how multi-lang works in the Moodle app: [https://moodle.org/mod/forum/discuss.php?d=453445#p1825637 Re: Language selector missing in Moodle app]&lt;br /&gt;
&lt;br /&gt;
If the Moodle app is not yet available in your language, please contribute a translation! See [https://docs.moodle.org/dev/Translating%20Moodle%20Mobile Translating Moodle Mobile] for details of what to do.&lt;br /&gt;
&lt;br /&gt;
=== Changes made to a Moodle site URL can cause logged-in users’ data to fail when synchronising. ===&lt;br /&gt;
We recommend that administrators manually log out all users after a site rename. If your site URL changes and have site users that are using the mobile Moodle App we suggest the following:&lt;br /&gt;
* For users that have not yet logged in - we recommend sending them the new URL&lt;br /&gt;
*   For users already using the mobile Moodle App and potentially logged in request them to:&lt;br /&gt;
** log out of the mobile Moodle App,&lt;br /&gt;
** delete the old site, and&lt;br /&gt;
** log in using the new URL&lt;br /&gt;
Logged in Moodle users can continue working with the previous URL (with cached information) but they will not be able to synchronise the new information (therefore not receiving new information from their teachers, and teachers not receiving data or submissions from those students).&lt;br /&gt;
* To avoid the risk of data not synchronising, we recommend the site administrator logs out all app users, by manually deleting their tokens:&lt;br /&gt;
** Go to Site administration&lt;br /&gt;
** Click Server &lt;br /&gt;
** Click Web services &lt;br /&gt;
** Click Manage tokens &lt;br /&gt;
** Delete the tokens&lt;br /&gt;
Take into account that you still need to request your users to log in using the new URL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Embedded content is not working ===&lt;br /&gt;
&lt;br /&gt;
This could be caused because your site is using a Content-Security-Policy that is preventing the app from embedding content.&lt;br /&gt;
&lt;br /&gt;
You can easily detect this when an error like this is displayed (javascript console): Refused to load URL because it does not appear in the frame-ancestors directive of the Content Security Policy.&lt;br /&gt;
&lt;br /&gt;
If that&#039;s the case, you&#039;d need to add the following elements: http://localhost moodleappfs://localhost at the end of the &amp;quot;Content-Security-Policy&amp;quot; HTTP header:&lt;br /&gt;
&lt;br /&gt;
An example of a CSP allowing embedding Vimeo videos in the site and content in the app:&lt;br /&gt;
Content-Security-Policy: frame-ancestors &#039;self&#039; https://*.vimeocdn.com https://*.vimeows.com https://*.vimeo.com http://localhost moodleappfs://localhost ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Some activities are displayed incorrectly (blank, just a vertical line, ..) on the app ===&lt;br /&gt;
Please visit the forum post [[https://moodle.org/mod/forum/discuss.php?d=461909#p1854918| Some lesson activities do not display at all]].&lt;br /&gt;
&lt;br /&gt;
==Error messages==&lt;br /&gt;
=== &#039;Coding error: version.php file is missing for the component&#039; ===&lt;br /&gt;
This error message indicates that that plugin is not correctly installed (or uninstalled) on the Moodle site you use (see [[Installing plugins]]). Please review the mod/certificate folder to check if the version.php file is missing (or has incorrect permissions) as well as purge cache too.&lt;br /&gt;
=== &#039;Can not find data record in database table external_functions&#039; ===&lt;br /&gt;
This error usually happens due to a bad configuration or setting value in your Moodle site, please check:&lt;br /&gt;
# The user quota global setting should be an integer. For more details, see the discussion [https://moodle.org/mod/forum/discuss.php?d=320873 How to enable Moodle Mobile App for all accounts].&lt;br /&gt;
# The &#039;&#039;usermaxuploadfilesize&#039;&#039; should be an integer, please try to decrease the size. It can be configured in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; Site Policies &amp;gt; Maximum uploaded file size&#039;&#039;. The default value (Site upload limit) depends on the PHP configuration, you might have to change the value of &#039;&#039;upload_max_filesize&#039;&#039; and &#039;&#039;post_max_size&#039;&#039; in your &#039;&#039;php.ini&#039;&#039; file.&lt;br /&gt;
# The user &amp;quot;lang&amp;quot; field in the database is set to a correct value and existing language installed in the site. Some times the lang field is set via external systems to incorrect values or pointing to a language pack that was uninstalled. Please, note that to fix this you need direct access to the database and your &#039;user&#039; and &#039;course&#039; table.&lt;br /&gt;
===&#039;Cannot connect: Verify that you have typed correctly the URL and that your site uses Moodle 3.5 or later&#039;===&lt;br /&gt;
Take into account that the app will only connect to Moodle LMS sites version 3.5 onward.&lt;br /&gt;
Please also check:&lt;br /&gt;
# Mobile services are enabled for the site.&lt;br /&gt;
# The user is entering the correct URL for the site (see FAQ above)&lt;br /&gt;
# For https sites, the certificate is valid (see FAQ above)&lt;br /&gt;
===&#039;Invalid Moodle site version. The Moodle app only supports Moodle systems 3.5 onwards&#039;===&lt;br /&gt;
The app will only connect to Moodle LMS sites version 3.5 onward (see [https://docs.moodle.org/35/en/Upgrading Upgrade to 3.5] as well as [[Upgrade overview]]).&lt;br /&gt;
===&#039;We lost connection; you need to reconnect. Your token is now invalid.&#039; on my custom version of the Moodle app ===&lt;br /&gt;
Please check:&lt;br /&gt;
# You have followed all the steps listed in [https://docs.moodle.org/dev/Moodle%20Mobile%20Developing%20a%20plugin%20tutorial Moodle Mobile Developing a plugin tutorial]&lt;br /&gt;
# You have enabled the [[Capabilities/moodle/webservice:createtoken|moodle/webservice:createtoken]] for the authenticated user&lt;br /&gt;
===&#039;No permission to create web service token for the service local_mobile&#039; when attempting to log in (any user that it is not an admin)===&lt;br /&gt;
Please check you have enabled the moodle/webservice:createtoken for the authenticated user or any global role you want to allow to use the mobile app&lt;br /&gt;
===&#039;No permission to create web service token for the service local_mobile&#039; when attempting to log in as an admin===&lt;br /&gt;
You need to create a token for the admin account (only) as follows:&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Web services &amp;gt; Manage tokens&#039;&#039;&lt;br /&gt;
# Click Add&lt;br /&gt;
# Enter the admin username and select &#039;Moodle app additional features service&#039; (i.e. do NOT leave it as &#039;Moodle app web service&#039;)&lt;br /&gt;
# Click the &#039;Save changes&#039; button.&lt;br /&gt;
===&#039;Invalid response value detected&#039; when accessing the site ===&lt;br /&gt;
The user quota global setting should be an integer. For more details, see the discussion [https://moodle.org/mod/forum/discuss.php?d=320873 How to enable Moodle Mobile App for all accounts].&lt;br /&gt;
=== &#039; Invalid response value detected: Invalid external api response: the value is &amp;quot;&amp;quot;, the server was expecting &amp;quot;raw&amp;quot; type&amp;quot; ===&lt;br /&gt;
This usually happens when there is a field with value NULL in a table in the database that should not be there. This may happen if your Moodle has been upgraded over many years and the database schema is broken.&lt;br /&gt;
&lt;br /&gt;
To fix it, you can do the following: &lt;br /&gt;
* Detect the field that is causing the problem (it should be indicated before the error message)&lt;br /&gt;
* Fix the field, for example, for the password field in the lesson table: UPDATE mdl_lesson SET password = &#039;&#039; WHERE password IS NULL (remember that your table prefix can be different than mdl_)&lt;br /&gt;
===&#039;Invalid response value detected&#039; when accessing My Courses or Course Overview ===&lt;br /&gt;
This usually happens when a course uses a language that isn&#039;t installed in the site. Please make sure that all courses use valid languages. This can be easily checked in the database, table &amp;quot;course&amp;quot;, there is a column named &amp;quot;lang&amp;quot;.&lt;br /&gt;
===&#039;A required parameter (username) was missing&#039;===&lt;br /&gt;
This may happen if your site implements HTTP redirects; the request is redirected by the browser not passing the POST parameters.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, this is something we cannot control in the Mobile app (it can&#039;t be handled via JavaScript). For further information, see http://stackoverflow.com/questions/228225/prevent-redirection-of-xmlhttprequest and http://stackoverflow.com/questions/4168784/ajax-redirection-handling&lt;br /&gt;
&lt;br /&gt;
The solution is to change the HTTP redirect and use an HTML page with a meta tag or JavaScript redirect.&lt;br /&gt;
===&#039;Cannot get course contents&#039;===&lt;br /&gt;
This usually happens when the course is using a course format plugin that was uninstalled from the server or that was not properly installed.&lt;br /&gt;
&lt;br /&gt;
Please, reinstall again the course format plugin.&lt;br /&gt;
===&#039;Access control exception&#039; or &#039;Your authentication token is invalid or has expired&#039;===&lt;br /&gt;
If this error appears as soon as you enter the username and password for a new site, then it probably means that the token expiration time is badly configured. This is how to fix it:&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Security &amp;gt; Site security settings&#039;&#039;.&lt;br /&gt;
# Find the setting named &#039;&#039;User created token duration&#039;&#039;.&lt;br /&gt;
# If the value is set to 0 or it&#039;s too low, please set it back to a valid value (the default value is 12 weeks).&lt;br /&gt;
# Click the &#039;Save changes&#039; button.&lt;br /&gt;
===ipmismatch: &#039;Client IP address mismatch&#039;===&lt;br /&gt;
This error can appear when a user opens your site in a browser while using the app. This happens if your site is behind a proxy and you&#039;re using one of these Moodle versions o higher: 3.5.11, 3.6.9, 3.7.5, 3.8.2, 3.9.0.&lt;br /&gt;
&lt;br /&gt;
To fix it:&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Administration &amp;gt; Server &amp;gt; HTTP&#039;&#039;.&lt;br /&gt;
# Find the setting named &#039;&#039;Ignore reverse proxies&#039;&#039; (reverseproxyignore).&lt;br /&gt;
# Enter the IP of your proxy (or range of IPs).&lt;br /&gt;
# Click the &#039;Save changes&#039; button.&lt;br /&gt;
If you are still experiencing issues please try to change this setting &amp;quot;getremoteaddrconf&amp;quot; (Logged IP address source) to the different existing values.&lt;br /&gt;
&lt;br /&gt;
Finally, it is possible to disable the IP restriction checks for functionality such as the QR login, to do that, go to Site administration &amp;gt; Mobile app &amp;gt; Mobile app authentication, and disable the &amp;quot;QR authentication same IP check&amp;quot; setting.&lt;br /&gt;
=== &#039;The param &amp;quot;includestealthmodules&amp;quot; is invalid&#039; ===&lt;br /&gt;
Please contact your learning organisation so they upgrade to at least Moodle 3.5.3 (see [https://docs.moodle.org/35/en/Upgrading Upgrade to 3.5] as well as [[Upgrade overview]]) or they manually apply the patch listed here [[MDL-63542]].&lt;br /&gt;
&lt;br /&gt;
==Older versions of the Moodle app==&lt;br /&gt;
We always recommend using the last version of the Moodle App but some times users are still using older versions this is the reason we are keeping this list:&lt;br /&gt;
&lt;br /&gt;
=== Some users are asked to reauthenticate too often when they browse the site (Moodle App &amp;lt;3.9.3) ===&lt;br /&gt;
This can happen if the app is sending too many variables to a WebService, e.g. because a course has a large number of sections and/or activities. This error was fixed in the 3.9.3 version of the app, but if you are using an older version of the app you can increase the value of &#039;&#039;max_input_vars&#039;&#039; in &#039;&#039;php.ini&#039;&#039; to fix it in your server.&lt;br /&gt;
&lt;br /&gt;
=== After upgrading to 3.9.5 some of my plugins have stopped working ===&lt;br /&gt;
The Moodle App 3.9.5 version came with some breaking changes for plugins, most of the existing plugins have been updated to support the new changes.&lt;br /&gt;
Please check the following list of plugins that should work for 3.9.5 once you have upgraded to the latest version indicated in the document: https://docs.google.com/spreadsheets/d/1E9PqcUBpp9SAfQc_zJtX5tf9GeS3UN76A85IrrB4UDw/edit#gid=0&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7798 Moodle for mobile forum] on moodle.org.&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[de:Moodle Mobile - FAQ]]&lt;br /&gt;
[[ca:Moodle Mobile FAQ]]&lt;br /&gt;
[[es:Moodle app FAQ]]&lt;br /&gt;
[[fr:Moodle pour les mobiles]]&lt;br /&gt;
[[ja:バイルMoodle FAQ]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_security&amp;diff=150677</id>
		<title>Moodle app security</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_security&amp;diff=150677"/>
		<updated>2024-12-20T09:51:06Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Warnings typically raised by static code analysis tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
&lt;br /&gt;
The Moodle app is a hybrid app (uses web-technologies) developed on top of a well-tested widely used framework called &amp;quot;Cordova&amp;quot; that provides a robust container for HTML apps.&lt;br /&gt;
&lt;br /&gt;
Security is very important to us, this is why we follow the Cordova and Moodle security recommendations:&lt;br /&gt;
* Cordova: https://cordova.apache.org/docs/en/latest/guide/appdev/security/&lt;br /&gt;
* Moodle: https://docs.moodle.org/dev/Security (when developing Web Services)&lt;br /&gt;
&lt;br /&gt;
== How we approach security ==&lt;br /&gt;
&lt;br /&gt;
* Login and authorisation&lt;br /&gt;
** Authorisation is done via temporary access tokens. The duration of the access tokens can be configured via Moodle settings.&lt;br /&gt;
** Single Sign-On (or auto-login) from the app to the site is done using a special private token (that is obtained and stored when the user log-in with the app)&lt;br /&gt;
** Single Sign-On (or auto-login) from the app to the site has several additional restrictions (like limiting it in only several times per hour)&lt;br /&gt;
** QR-Login is done using temporary tokens that require the user to be in the same network (IP address) and it is limited to 10 minutes time&lt;br /&gt;
** For retrieving files from the server (images or other assets), a different non-authentication token is used.&lt;br /&gt;
&lt;br /&gt;
* Permissions&lt;br /&gt;
** The app only has access to a subset of Moodle functionalities (available through the Moodle App Service)&lt;br /&gt;
** Privileges escalation is not possible via the Web Services layer since all the operations are done in a non-privileged way, permissions are checked based on the currently authenticated user.&lt;br /&gt;
** Even if a temporary access token for an admin (or privileged user) was hijacked, it wouldn&#039;t be possible for the attacker to access to site administration functionality via the Moodle site.&lt;br /&gt;
&lt;br /&gt;
Because the app is a Webservices client we recommend to enable it only under https and use the following settings to enforce security like:&lt;br /&gt;
* Enable only certain roles to be able to access via the app via system capabilities (avoid site administrators)&lt;br /&gt;
* Use Moodle security settings to reduce the expiration time of WebService access tokens (so the user has to authenticate again)&lt;br /&gt;
* Apart from that, the Cordova framework enforces security adding restrictions like avoiding connecting to sites running non-trusted certificates.&lt;br /&gt;
&lt;br /&gt;
== What is the Moodle app security issues process? ==&lt;br /&gt;
&lt;br /&gt;
* We follow the standard Moodle security process: https://docs.moodle.org/dev/Moodle_security_procedures&lt;br /&gt;
* There is only one relevant difference: security patches are applied immediately in the next app release or in an emergency release (depending the risks attached to the issue)&lt;br /&gt;
&lt;br /&gt;
== Shared responsibility ==&lt;br /&gt;
&lt;br /&gt;
* The organisation hosting the Moodle site is also responsible for providing secure access to the Moodle site, the site should be configured to use HTTPS (secure connection) so the connection is app-to-site encrypted.&lt;br /&gt;
* Apart from the previous, the Moodle site administrator can enable additional security measures such as enforcing end-to-end encryption for Push notifications via the site administration notification settings.&lt;br /&gt;
&lt;br /&gt;
== Do you run security/penetration/pentest or static code analysis tests? ==&lt;br /&gt;
&lt;br /&gt;
We do occasionally receive automated vulnerability reports of this nature. The issue with automated tools is that they usually output generic results that indicate where an exploit may be possible, which means the results often contain many false positives.&lt;br /&gt;
&lt;br /&gt;
As mentioned above our app is built on top of Cordova, we rely on the Cordova framework developers to detect any native code issue. &lt;br /&gt;
&lt;br /&gt;
You can do a search in the Cordova project tracker to see that several runs with the Static Code Analysis Veracode tool created issues that have been already solved, see: https://issues.apache.org/jira/issues/?jql=project%20%3D%20CB%20AND%20text%20~%20%22veracode%22%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC&lt;br /&gt;
&lt;br /&gt;
Unfortunately, those Veracode runs are not publicly available because most of the time are run by external parties using the framework.&lt;br /&gt;
&lt;br /&gt;
Please, note also that there are CVE codes for Cordova security issues: https://www.cvedetails.com/product/27153/Apache-Cordova.html?vendor_id=4&lt;br /&gt;
&lt;br /&gt;
== Warnings typically raised by static code analysis tools ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Lack of Jailbreak Detection&#039;&#039;&#039;  The Moodle app does not include jailbreak or root detection. This is due to the lack of official APIs from Google or Apple, and our testing of existing non-official plugins to support it showed a high rate of false positives, particularly on Android with budget devices or recent iOS updates. Notably, the app securely stores authentication tokens in the keystore/keychain, not in the session. The session token is used only for temporary content retrieval and has limited validity, ensuring that even on compromised devices, attackers cannot extract sensitive data to perform impersonation attacks.&lt;br /&gt;
* &#039;&#039;&#039;No Certificate Pinning&#039;&#039;&#039;  The Moodle app does not support certificate pinning because it is designed to connect to any Moodle site globally (there are hundreds of thousands of sites, each one with its own URL, using Moodle), whether hosted on HTTPS, HTTP, or local networks. Additionally, the Cordova framework we rely on does not natively support certificate pinning.&lt;br /&gt;
* &#039;&#039;&#039;Lack of Encryption for Manifest Files&#039;&#039;&#039;  The app does not include sensitive keys or certificates in publicly accessible files, eliminating the need for encryption of manifest files. The Firebase certificates available in the app’s GitHub repository are bound to the app’s fingerprint, ensuring they cannot be exploited.&lt;br /&gt;
* &#039;&#039;&#039;Static Web Service Authentication Tokens (Session Fixation)&#039;&#039;&#039;  Web service tokens are not regenerated with each login by design. This aligns with how the Moodle Web Services API operates, allowing users to connect across multiple devices (e.g., phone and tablet) without invalidating tokens. Regenerating tokens would restrict multi-device access.&lt;br /&gt;
* &#039;&#039;&#039;Lack of Code Obfuscation&#039;&#039;&#039;  The Moodle app code is open source. Since no keys or private data are generated during compilation, code obfuscation is not necessary.&lt;br /&gt;
* &#039;&#039;&#039;Improper Session Timeout &amp;amp; Logout Function&#039;&#039;&#039;  The Moodle app follows a common approach used by most mobile apps on Android and iOS, where users are not prompted to log in repeatedly after short periods of inactivity. Mobile devices provide adequate protection through features such as automatic locking when inactive.  However, Moodle site administrators have full control over how the app handles session timeouts and logout behavior. They can:&lt;br /&gt;
** Define how the logout function works (soft logout or complete session termination).&lt;br /&gt;
** Set a custom session timeout duration.&lt;br /&gt;
** Configure the duration of the Web Service authentication token.&lt;br /&gt;
&lt;br /&gt;
These configurations can be managed through:&lt;br /&gt;
** &#039;&#039;&#039;Site administration &amp;gt; Mobile app authentication settings&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;Site administration &amp;gt; Security settings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----Does this fully address your requirements? Let me know if you&#039;d like further refinements!&lt;br /&gt;
[[es:Seguridad de Moodle app]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_security&amp;diff=150676</id>
		<title>Moodle app security</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_security&amp;diff=150676"/>
		<updated>2024-12-20T09:47:27Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Warnings typically raised by static code analysis tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
&lt;br /&gt;
The Moodle app is a hybrid app (uses web-technologies) developed on top of a well-tested widely used framework called &amp;quot;Cordova&amp;quot; that provides a robust container for HTML apps.&lt;br /&gt;
&lt;br /&gt;
Security is very important to us, this is why we follow the Cordova and Moodle security recommendations:&lt;br /&gt;
* Cordova: https://cordova.apache.org/docs/en/latest/guide/appdev/security/&lt;br /&gt;
* Moodle: https://docs.moodle.org/dev/Security (when developing Web Services)&lt;br /&gt;
&lt;br /&gt;
== How we approach security ==&lt;br /&gt;
&lt;br /&gt;
* Login and authorisation&lt;br /&gt;
** Authorisation is done via temporary access tokens. The duration of the access tokens can be configured via Moodle settings.&lt;br /&gt;
** Single Sign-On (or auto-login) from the app to the site is done using a special private token (that is obtained and stored when the user log-in with the app)&lt;br /&gt;
** Single Sign-On (or auto-login) from the app to the site has several additional restrictions (like limiting it in only several times per hour)&lt;br /&gt;
** QR-Login is done using temporary tokens that require the user to be in the same network (IP address) and it is limited to 10 minutes time&lt;br /&gt;
** For retrieving files from the server (images or other assets), a different non-authentication token is used.&lt;br /&gt;
&lt;br /&gt;
* Permissions&lt;br /&gt;
** The app only has access to a subset of Moodle functionalities (available through the Moodle App Service)&lt;br /&gt;
** Privileges escalation is not possible via the Web Services layer since all the operations are done in a non-privileged way, permissions are checked based on the currently authenticated user.&lt;br /&gt;
** Even if a temporary access token for an admin (or privileged user) was hijacked, it wouldn&#039;t be possible for the attacker to access to site administration functionality via the Moodle site.&lt;br /&gt;
&lt;br /&gt;
Because the app is a Webservices client we recommend to enable it only under https and use the following settings to enforce security like:&lt;br /&gt;
* Enable only certain roles to be able to access via the app via system capabilities (avoid site administrators)&lt;br /&gt;
* Use Moodle security settings to reduce the expiration time of WebService access tokens (so the user has to authenticate again)&lt;br /&gt;
* Apart from that, the Cordova framework enforces security adding restrictions like avoiding connecting to sites running non-trusted certificates.&lt;br /&gt;
&lt;br /&gt;
== What is the Moodle app security issues process? ==&lt;br /&gt;
&lt;br /&gt;
* We follow the standard Moodle security process: https://docs.moodle.org/dev/Moodle_security_procedures&lt;br /&gt;
* There is only one relevant difference: security patches are applied immediately in the next app release or in an emergency release (depending the risks attached to the issue)&lt;br /&gt;
&lt;br /&gt;
== Shared responsibility ==&lt;br /&gt;
&lt;br /&gt;
* The organisation hosting the Moodle site is also responsible for providing secure access to the Moodle site, the site should be configured to use HTTPS (secure connection) so the connection is app-to-site encrypted.&lt;br /&gt;
* Apart from the previous, the Moodle site administrator can enable additional security measures such as enforcing end-to-end encryption for Push notifications via the site administration notification settings.&lt;br /&gt;
&lt;br /&gt;
== Do you run security/penetration/pentest or static code analysis tests? ==&lt;br /&gt;
&lt;br /&gt;
We do occasionally receive automated vulnerability reports of this nature. The issue with automated tools is that they usually output generic results that indicate where an exploit may be possible, which means the results often contain many false positives.&lt;br /&gt;
&lt;br /&gt;
As mentioned above our app is built on top of Cordova, we rely on the Cordova framework developers to detect any native code issue. &lt;br /&gt;
&lt;br /&gt;
You can do a search in the Cordova project tracker to see that several runs with the Static Code Analysis Veracode tool created issues that have been already solved, see: https://issues.apache.org/jira/issues/?jql=project%20%3D%20CB%20AND%20text%20~%20%22veracode%22%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC&lt;br /&gt;
&lt;br /&gt;
Unfortunately, those Veracode runs are not publicly available because most of the time are run by external parties using the framework.&lt;br /&gt;
&lt;br /&gt;
Please, note also that there are CVE codes for Cordova security issues: https://www.cvedetails.com/product/27153/Apache-Cordova.html?vendor_id=4&lt;br /&gt;
&lt;br /&gt;
== Warnings typically raised by static code analysis tools ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Lack of Jailbreak Detection&#039;&#039;&#039;  The Moodle app does not include jailbreak or root detection. This is due to the lack of official APIs from Google or Apple, and our testing of plugins showed a high rate of false positives, particularly on Android with budget devices or recent iOS updates. Notably, the app securely stores authentication tokens in the keystore/keychain, not in the session. The session token is used only for temporary content retrieval and has limited validity, ensuring that even on compromised devices, attackers cannot extract sensitive data to perform impersonation attacks.&lt;br /&gt;
* &#039;&#039;&#039;No Certificate Pinning&#039;&#039;&#039;  The Moodle app does not support certificate pinning because it is designed to connect to any Moodle site globally, whether hosted on HTTPS, HTTP, or local networks. Additionally, the Cordova framework we rely on does not natively support certificate pinning. While plugins exist, Moodle’s backend architecture does not accommodate their use. See Cordova Security Guide for details.&lt;br /&gt;
* &#039;&#039;&#039;Lack of Encryption for Manifest Files&#039;&#039;&#039;  The app does not include sensitive keys or certificates in publicly accessible files, eliminating the need for encryption of manifest files. The Firebase certificates available in the app’s GitHub repository are bound to the app’s fingerprint, ensuring they cannot be exploited.&lt;br /&gt;
* &#039;&#039;&#039;Static Web Service Authentication Tokens (Session Fixation)&#039;&#039;&#039;  Web service tokens are not regenerated with each login by design. This aligns with how the Moodle Web Services API operates, allowing users to connect across multiple devices (e.g., phone and tablet) without invalidating tokens. Regenerating tokens would restrict multi-device access.&lt;br /&gt;
* &#039;&#039;&#039;Lack of Code Obfuscation&#039;&#039;&#039;  The Moodle app code is open source. Since no keys or private data are generated during compilation, code obfuscation is not necessary.&lt;br /&gt;
* &#039;&#039;&#039;Improper Session Timeout &amp;amp; Logout Function&#039;&#039;&#039;  The Moodle app follows a common approach used by most mobile apps on Android and iOS, where users are not prompted to log in repeatedly after short periods of inactivity. Mobile devices provide adequate protection through features such as automatic locking when inactive.  However, Moodle site administrators have full control over how the app handles session timeouts and logout behavior. They can:&lt;br /&gt;
** Define how the logout function works (soft logout or complete session termination).&lt;br /&gt;
** Set a custom session timeout duration.&lt;br /&gt;
** Configure the duration of the Web Service authentication token.  &lt;br /&gt;
&lt;br /&gt;
These configurations can be managed through:&lt;br /&gt;
** &#039;&#039;&#039;Site administration &amp;gt; Mobile app authentication settings&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;Site administration &amp;gt; Security settings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----Does this fully address your requirements? Let me know if you&#039;d like further refinements!&lt;br /&gt;
[[es:Seguridad de Moodle app]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_security&amp;diff=150675</id>
		<title>Moodle app security</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_security&amp;diff=150675"/>
		<updated>2024-12-20T09:37:19Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Warnings typically raised by static code analysis tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
&lt;br /&gt;
The Moodle app is a hybrid app (uses web-technologies) developed on top of a well-tested widely used framework called &amp;quot;Cordova&amp;quot; that provides a robust container for HTML apps.&lt;br /&gt;
&lt;br /&gt;
Security is very important to us, this is why we follow the Cordova and Moodle security recommendations:&lt;br /&gt;
* Cordova: https://cordova.apache.org/docs/en/latest/guide/appdev/security/&lt;br /&gt;
* Moodle: https://docs.moodle.org/dev/Security (when developing Web Services)&lt;br /&gt;
&lt;br /&gt;
== How we approach security ==&lt;br /&gt;
&lt;br /&gt;
* Login and authorisation&lt;br /&gt;
** Authorisation is done via temporary access tokens. The duration of the access tokens can be configured via Moodle settings.&lt;br /&gt;
** Single Sign-On (or auto-login) from the app to the site is done using a special private token (that is obtained and stored when the user log-in with the app)&lt;br /&gt;
** Single Sign-On (or auto-login) from the app to the site has several additional restrictions (like limiting it in only several times per hour)&lt;br /&gt;
** QR-Login is done using temporary tokens that require the user to be in the same network (IP address) and it is limited to 10 minutes time&lt;br /&gt;
** For retrieving files from the server (images or other assets), a different non-authentication token is used.&lt;br /&gt;
&lt;br /&gt;
* Permissions&lt;br /&gt;
** The app only has access to a subset of Moodle functionalities (available through the Moodle App Service)&lt;br /&gt;
** Privileges escalation is not possible via the Web Services layer since all the operations are done in a non-privileged way, permissions are checked based on the currently authenticated user.&lt;br /&gt;
** Even if a temporary access token for an admin (or privileged user) was hijacked, it wouldn&#039;t be possible for the attacker to access to site administration functionality via the Moodle site.&lt;br /&gt;
&lt;br /&gt;
Because the app is a Webservices client we recommend to enable it only under https and use the following settings to enforce security like:&lt;br /&gt;
* Enable only certain roles to be able to access via the app via system capabilities (avoid site administrators)&lt;br /&gt;
* Use Moodle security settings to reduce the expiration time of WebService access tokens (so the user has to authenticate again)&lt;br /&gt;
* Apart from that, the Cordova framework enforces security adding restrictions like avoiding connecting to sites running non-trusted certificates.&lt;br /&gt;
&lt;br /&gt;
== What is the Moodle app security issues process? ==&lt;br /&gt;
&lt;br /&gt;
* We follow the standard Moodle security process: https://docs.moodle.org/dev/Moodle_security_procedures&lt;br /&gt;
* There is only one relevant difference: security patches are applied immediately in the next app release or in an emergency release (depending the risks attached to the issue)&lt;br /&gt;
&lt;br /&gt;
== Shared responsibility ==&lt;br /&gt;
&lt;br /&gt;
* The organisation hosting the Moodle site is also responsible for providing secure access to the Moodle site, the site should be configured to use HTTPS (secure connection) so the connection is app-to-site encrypted.&lt;br /&gt;
* Apart from the previous, the Moodle site administrator can enable additional security measures such as enforcing end-to-end encryption for Push notifications via the site administration notification settings.&lt;br /&gt;
&lt;br /&gt;
== Do you run security/penetration/pentest or static code analysis tests? ==&lt;br /&gt;
&lt;br /&gt;
We do occasionally receive automated vulnerability reports of this nature. The issue with automated tools is that they usually output generic results that indicate where an exploit may be possible, which means the results often contain many false positives.&lt;br /&gt;
&lt;br /&gt;
As mentioned above our app is built on top of Cordova, we rely on the Cordova framework developers to detect any native code issue. &lt;br /&gt;
&lt;br /&gt;
You can do a search in the Cordova project tracker to see that several runs with the Static Code Analysis Veracode tool created issues that have been already solved, see: https://issues.apache.org/jira/issues/?jql=project%20%3D%20CB%20AND%20text%20~%20%22veracode%22%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC&lt;br /&gt;
&lt;br /&gt;
Unfortunately, those Veracode runs are not publicly available because most of the time are run by external parties using the framework.&lt;br /&gt;
&lt;br /&gt;
Please, note also that there are CVE codes for Cordova security issues: https://www.cvedetails.com/product/27153/Apache-Cordova.html?vendor_id=4&lt;br /&gt;
&lt;br /&gt;
== Warnings typically raised by static code analysis tools ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Lack of Jailbreak Detection&#039;&#039;&#039;  The Moodle app does not include jailbreak or root detection. This is due to the lack of official APIs from Google or Apple, and our testing of plugins showed a high rate of false positives, particularly on Android with budget devices or recent iOS updates. Notably, the app securely stores authentication tokens in the keystore/keychain, not in the session. The session token is used only for temporary content retrieval and has limited validity, ensuring that even on compromised devices, attackers cannot extract sensitive data to perform impersonation attacks.&lt;br /&gt;
* &#039;&#039;&#039;No Certificate Pinning&#039;&#039;&#039;  The Moodle app does not support certificate pinning because it is designed to connect to any Moodle site globally, whether hosted on HTTPS, HTTP, or local networks. Additionally, the Cordova framework we rely on does not natively support certificate pinning. While plugins exist, Moodle’s backend architecture does not accommodate their use. See Cordova Security Guide for details.&lt;br /&gt;
* &#039;&#039;&#039;Lack of Encryption for Manifest Files&#039;&#039;&#039;  The app does not include sensitive keys or certificates in publicly accessible files, eliminating the need for encryption of manifest files. The Firebase certificates available in the app’s GitHub repository are bound to the app’s fingerprint, ensuring they cannot be exploited.&lt;br /&gt;
* &#039;&#039;&#039;Static Web Service Authentication Tokens (Session Fixation)&#039;&#039;&#039;  Web service tokens are not regenerated with each login by design. This aligns with how the Moodle Web Services API operates, allowing users to connect across multiple devices (e.g., phone and tablet) without invalidating tokens. Regenerating tokens would restrict multi-device access.&lt;br /&gt;
* &#039;&#039;&#039;Lack of Code Obfuscation&#039;&#039;&#039;  The Moodle app code is open source. Since no keys or private data are generated during compilation, code obfuscation is not necessary.&lt;br /&gt;
* &#039;&#039;&#039;Improper Session Timeout &amp;amp; Logout Function&#039;&#039;&#039;  The Moodle app follows a common approach used by most mobile apps on Android and iOS, where users are not prompted to log in repeatedly after short periods of inactivity. Mobile devices provide adequate protection through features such as automatic locking when inactive.  However, Moodle site administrators have full control over how the app handles session timeouts and logout behavior. They can:&lt;br /&gt;
** Define how the logout function works (soft logout or complete session termination).&lt;br /&gt;
** Set a custom session timeout duration.&lt;br /&gt;
** Configure the duration of the Web Service authentication token.  These configurations can be managed through:&lt;br /&gt;
** &#039;&#039;&#039;Site administration &amp;gt; Mobile app authentication settings&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;Site administration &amp;gt; Security settings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----Does this fully address your requirements? Let me know if you&#039;d like further refinements!&lt;br /&gt;
[[es:Seguridad de Moodle app]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Moodle_app_security&amp;diff=150674</id>
		<title>Moodle app security</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Moodle_app_security&amp;diff=150674"/>
		<updated>2024-12-20T09:36:05Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
&lt;br /&gt;
The Moodle app is a hybrid app (uses web-technologies) developed on top of a well-tested widely used framework called &amp;quot;Cordova&amp;quot; that provides a robust container for HTML apps.&lt;br /&gt;
&lt;br /&gt;
Security is very important to us, this is why we follow the Cordova and Moodle security recommendations:&lt;br /&gt;
* Cordova: https://cordova.apache.org/docs/en/latest/guide/appdev/security/&lt;br /&gt;
* Moodle: https://docs.moodle.org/dev/Security (when developing Web Services)&lt;br /&gt;
&lt;br /&gt;
== How we approach security ==&lt;br /&gt;
&lt;br /&gt;
* Login and authorisation&lt;br /&gt;
** Authorisation is done via temporary access tokens. The duration of the access tokens can be configured via Moodle settings.&lt;br /&gt;
** Single Sign-On (or auto-login) from the app to the site is done using a special private token (that is obtained and stored when the user log-in with the app)&lt;br /&gt;
** Single Sign-On (or auto-login) from the app to the site has several additional restrictions (like limiting it in only several times per hour)&lt;br /&gt;
** QR-Login is done using temporary tokens that require the user to be in the same network (IP address) and it is limited to 10 minutes time&lt;br /&gt;
** For retrieving files from the server (images or other assets), a different non-authentication token is used.&lt;br /&gt;
&lt;br /&gt;
* Permissions&lt;br /&gt;
** The app only has access to a subset of Moodle functionalities (available through the Moodle App Service)&lt;br /&gt;
** Privileges escalation is not possible via the Web Services layer since all the operations are done in a non-privileged way, permissions are checked based on the currently authenticated user.&lt;br /&gt;
** Even if a temporary access token for an admin (or privileged user) was hijacked, it wouldn&#039;t be possible for the attacker to access to site administration functionality via the Moodle site.&lt;br /&gt;
&lt;br /&gt;
Because the app is a Webservices client we recommend to enable it only under https and use the following settings to enforce security like:&lt;br /&gt;
* Enable only certain roles to be able to access via the app via system capabilities (avoid site administrators)&lt;br /&gt;
* Use Moodle security settings to reduce the expiration time of WebService access tokens (so the user has to authenticate again)&lt;br /&gt;
* Apart from that, the Cordova framework enforces security adding restrictions like avoiding connecting to sites running non-trusted certificates.&lt;br /&gt;
&lt;br /&gt;
== What is the Moodle app security issues process? ==&lt;br /&gt;
&lt;br /&gt;
* We follow the standard Moodle security process: https://docs.moodle.org/dev/Moodle_security_procedures&lt;br /&gt;
* There is only one relevant difference: security patches are applied immediately in the next app release or in an emergency release (depending the risks attached to the issue)&lt;br /&gt;
&lt;br /&gt;
== Shared responsibility ==&lt;br /&gt;
&lt;br /&gt;
* The organisation hosting the Moodle site is also responsible for providing secure access to the Moodle site, the site should be configured to use HTTPS (secure connection) so the connection is app-to-site encrypted.&lt;br /&gt;
* Apart from the previous, the Moodle site administrator can enable additional security measures such as enforcing end-to-end encryption for Push notifications via the site administration notification settings.&lt;br /&gt;
&lt;br /&gt;
== Do you run security/penetration/pentest or static code analysis tests? ==&lt;br /&gt;
&lt;br /&gt;
We do occasionally receive automated vulnerability reports of this nature. The issue with automated tools is that they usually output generic results that indicate where an exploit may be possible, which means the results often contain many false positives.&lt;br /&gt;
&lt;br /&gt;
As mentioned above our app is built on top of Cordova, we rely on the Cordova framework developers to detect any native code issue. &lt;br /&gt;
&lt;br /&gt;
You can do a search in the Cordova project tracker to see that several runs with the Static Code Analysis Veracode tool created issues that have been already solved, see: https://issues.apache.org/jira/issues/?jql=project%20%3D%20CB%20AND%20text%20~%20%22veracode%22%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC&lt;br /&gt;
&lt;br /&gt;
Unfortunately, those Veracode runs are not publicly available because most of the time are run by external parties using the framework.&lt;br /&gt;
&lt;br /&gt;
Please, note also that there are CVE codes for Cordova security issues: https://www.cvedetails.com/product/27153/Apache-Cordova.html?vendor_id=4&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Warnings typically raised by static code analysis tools&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Lack of Jailbreak Detection&#039;&#039;&#039;  The Moodle app does not include jailbreak or root detection. This is due to the lack of official APIs from Google or Apple, and our testing of plugins showed a high rate of false positives, particularly on Android with budget devices or recent iOS updates. Notably, the app securely stores authentication tokens in the keystore/keychain, not in the session. The session token is used only for temporary content retrieval and has limited validity, ensuring that even on compromised devices, attackers cannot extract sensitive data to perform impersonation attacks.&lt;br /&gt;
# &#039;&#039;&#039;No Certificate Pinning&#039;&#039;&#039;  The Moodle app does not support certificate pinning because it is designed to connect to any Moodle site globally, whether hosted on HTTPS, HTTP, or local networks. Additionally, the Cordova framework we rely on does not natively support certificate pinning. While plugins exist, Moodle’s backend architecture does not accommodate their use. See Cordova Security Guide for details.&lt;br /&gt;
# &#039;&#039;&#039;Lack of Encryption for Manifest Files&#039;&#039;&#039;  The app does not include sensitive keys or certificates in publicly accessible files, eliminating the need for encryption of manifest files. The Firebase certificates available in the app’s GitHub repository are bound to the app’s fingerprint, ensuring they cannot be exploited.&lt;br /&gt;
# &#039;&#039;&#039;Static Web Service Authentication Tokens&#039;&#039;&#039;  Web service tokens are not regenerated with each login by design. This aligns with how the Moodle Web Services API operates, allowing users to connect across multiple devices (e.g., phone and tablet) without invalidating tokens. Regenerating tokens would restrict multi-device access.&lt;br /&gt;
# &#039;&#039;&#039;Lack of Code Obfuscation&#039;&#039;&#039;  The Moodle app code is open source. Since no keys or private data are generated during compilation, code obfuscation is not necessary.&lt;br /&gt;
# &#039;&#039;&#039;Improper Session Timeout &amp;amp; Logout Function&#039;&#039;&#039;  The Moodle app follows a common approach used by most mobile apps on Android and iOS, where users are not prompted to log in repeatedly after short periods of inactivity. Mobile devices provide adequate protection through features such as automatic locking when inactive.  However, Moodle site administrators have full control over how the app handles session timeouts and logout behavior. They can:&lt;br /&gt;
#* Define how the logout function works (soft logout or complete session termination).&lt;br /&gt;
#* Set a custom session timeout duration.&lt;br /&gt;
#* Configure the duration of the Web Service authentication token.  These configurations can be managed through:&lt;br /&gt;
#* &#039;&#039;&#039;Site administration &amp;gt; Mobile app authentication settings&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Site administration &amp;gt; Security settings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----Does this fully address your requirements? Let me know if you&#039;d like further refinements!&lt;br /&gt;
[[es:Seguridad de Moodle app]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Privacy_in_the_Moodle_app&amp;diff=150332</id>
		<title>Privacy in the Moodle app</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Privacy_in_the_Moodle_app&amp;diff=150332"/>
		<updated>2024-12-04T07:36:45Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
The Moodle Mobile App is designed with user privacy in mind, ensuring data security and control for all users. Below is a summary of how the app handles user data and privacy-related concerns:&lt;br /&gt;
&lt;br /&gt;
== Communication Between the App and Moodle Site ==&lt;br /&gt;
&lt;br /&gt;
The Moodle app communicates directly with the Moodle site selected by the user.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No data is sent to third parties&#039;&#039;&#039; during interactions between the user and the mobile app. All communication initiated by the app happens securely between the app and the Moodle site.&lt;br /&gt;
&lt;br /&gt;
There are some scenarios that might involve third-party servers processing data when certain functionality is enabled in the Moodle site such as Push Notifications as described below.&lt;br /&gt;
&lt;br /&gt;
=== Push Notifications ===&lt;br /&gt;
&lt;br /&gt;
When enabled on the Moodle site, Push notifications may involve third-party servers like Moodle Airnotifier, Google (for Android) or Apple (for iOS). For example, a forum post message may travel through these servers for delivery.&lt;br /&gt;
&lt;br /&gt;
To enhance privacy, we recommend enabling &#039;&#039;&#039;[[Moodle app notifications|end-to-end encryption for Push Notifications]]&#039;&#039;&#039; via Moodle site settings. This ensures data is encrypted before leaving the site and decrypted only upon reaching the user’s device.&lt;br /&gt;
&lt;br /&gt;
Users can disable push notifications at anytime:&lt;br /&gt;
* In their device settings.&lt;br /&gt;
* While the app is launched for first time.&lt;br /&gt;
* Through the Moodle app settings.&lt;br /&gt;
* Directly within the Moodle site settings.&lt;br /&gt;
&lt;br /&gt;
Please check Moodle Data Processing Agreement available at https://moodle.com/privacy-notice/ for additional information.&lt;br /&gt;
&lt;br /&gt;
== App Permissions ==&lt;br /&gt;
&lt;br /&gt;
The Moodle Mobile App uses only the &#039;&#039;&#039;minimum permissions&#039;&#039;&#039; required for its functionality.&lt;br /&gt;
&lt;br /&gt;
Users are prompted to allow specific permissions only when necessary. For example: If a user wants to update their profile picture, the app will request permission to access the photo gallery at that time. Users have full control over granting or denying these permissions.&lt;br /&gt;
&lt;br /&gt;
== Policies and Age Verification ==&lt;br /&gt;
&lt;br /&gt;
The Moodle app supports the Moodle built-in [[Policies|policies]] functionality. If configured by the site administrators, before being able to access a Moodle site:&lt;br /&gt;
* Users will be shown all applicable policies, including mandatory and optional policies.&lt;br /&gt;
* If the site has an [[Privacy|age verification]] policy, the app will ensure users confirm their compliance before they can proceed.&lt;br /&gt;
&lt;br /&gt;
This ensures that all users are fully informed and consent to the terms set by the Moodle site.&lt;br /&gt;
&lt;br /&gt;
== Embedded Content from External Services ==&lt;br /&gt;
&lt;br /&gt;
Teachers and content creators may embed external content, such as videos or widgets. Such embedded content may allow third parties to set cookies or track users.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommendations for privacy-friendly embedding:&#039;&#039;&#039;&lt;br /&gt;
* Use YouTube’s no-cookie feature when embedding videos.&lt;br /&gt;
* For Vimeo, enable the [https://help.vimeo.com/hc/en-us/articles/12426260232977-About-Player-parameters “privacy dnt” parameter] to reduce tracking.&lt;br /&gt;
* For other content providers, please check their documentation.&lt;br /&gt;
&lt;br /&gt;
== Accessibility Features ==&lt;br /&gt;
&lt;br /&gt;
On Android and iOS devices, some features like accessibility services or password auto-fill may involve data processing by Google and/or Apple services (for text processing and reading and storage).&lt;br /&gt;
&lt;br /&gt;
These functionalities are part of their operating system and are not controlled by the Moodle app. We do not prevent its usage by default as they might be necessary in different types of scenarios or by certain organisations using the standard Moodle app.&lt;br /&gt;
&lt;br /&gt;
Users can manage or disable these features directly through their device settings.&lt;br /&gt;
&lt;br /&gt;
== Use of Firebase Framework ==&lt;br /&gt;
&lt;br /&gt;
The Moodle app uses Google’s Firebase framework to enable Push Notifications.&lt;br /&gt;
&lt;br /&gt;
After launching the app the Firebase framework generates a unique identifier (a random string of letters and numbers) to recognise the app for sending notifications. This identifier:&lt;br /&gt;
* Is used solely for basic functionality.&lt;br /&gt;
* Does not contain any private or personal data.&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier, users can opt out of Push Notifications entirely if they prefer. It will prevent the Firebase framework from generating additional ids or processing any type of information from the user or the site.&lt;br /&gt;
&lt;br /&gt;
== Cookies ==&lt;br /&gt;
&lt;br /&gt;
The Moodle app does not require cookies to function.&lt;br /&gt;
&lt;br /&gt;
When content is embedded from external sites, such as videos or widgets, those providers may set cookies. Those cookies will not persist between app sessions, as they are not stored in the app itself, they run in an isolated environment.&lt;br /&gt;
&lt;br /&gt;
== Responsibility ==&lt;br /&gt;
&lt;br /&gt;
Moodle provides tools and features to implement privacy practices effectively but at the same time offers flexibility to integrate and embed content from various external providers and total freedom to the end-user to opt-in to use whatever additional features they want to enable in their devices (such as password manager, accessibility features, auto-completion, etc..)&lt;br /&gt;
&lt;br /&gt;
Responsibility of the organisation:&lt;br /&gt;
* The organisation hosting the Moodle site must ensure they provide clear and comprehensive privacy policies to their users.&lt;br /&gt;
* Users must accept these policies before gaining access to the site via the Moodle site or the mobile app.&lt;br /&gt;
* It is the hosting organisation&#039;s duty to evaluate external content providers and ensure compliance with their local regulations.&lt;br /&gt;
&lt;br /&gt;
[[es:Privacidad en la Moodle app]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Privacy_in_the_Moodle_app&amp;diff=150331</id>
		<title>Privacy in the Moodle app</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Privacy_in_the_Moodle_app&amp;diff=150331"/>
		<updated>2024-12-04T07:28:13Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
The Moodle Mobile App is designed with user privacy in mind, ensuring data security and control for all users. Below is a summary of how the app handles user data and privacy-related concerns:&lt;br /&gt;
&lt;br /&gt;
== Communication Between the App and Moodle Site ==&lt;br /&gt;
&lt;br /&gt;
The Moodle app communicates directly with the Moodle site selected by the user.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No data is sent to third parties&#039;&#039;&#039; during interactions between the user and the mobile app. All communication initiated by the app happens securely between the app and the Moodle site.&lt;br /&gt;
&lt;br /&gt;
There are some scenarios that might involve third-party servers processing data when certain functionality is enabled in the Moodle site such as Push Notifications as described below.&lt;br /&gt;
&lt;br /&gt;
=== Push Notifications ===&lt;br /&gt;
&lt;br /&gt;
When enabled on the Moodle site, Push notifications may involve third-party servers like Moodle Airnotifier, Google (for Android) or Apple (for iOS). For example, a forum post message may travel through these servers for delivery.&lt;br /&gt;
&lt;br /&gt;
To enhance privacy, we recommend enabling &#039;&#039;&#039;[[Moodle app notifications|end-to-end encryption for Push Notifications]]&#039;&#039;&#039; via Moodle site settings. This ensures data is encrypted before leaving the site and decrypted only upon reaching the user’s device.&lt;br /&gt;
&lt;br /&gt;
Users can disable push notifications at anytime:&lt;br /&gt;
* In their device settings.&lt;br /&gt;
* While the app is launched for first time.&lt;br /&gt;
* Through the Moodle app settings.&lt;br /&gt;
* Directly within the Moodle site settings.&lt;br /&gt;
&lt;br /&gt;
Please check Moodle Data Processing Agreement available at https://moodle.com/privacy-notice/ for additional information.&lt;br /&gt;
&lt;br /&gt;
== App Permissions ==&lt;br /&gt;
&lt;br /&gt;
The Moodle Mobile App uses only the &#039;&#039;&#039;minimum permissions&#039;&#039;&#039; required for its functionality.&lt;br /&gt;
&lt;br /&gt;
Users are prompted to allow specific permissions only when necessary. For example: If a user wants to update their profile picture, the app will request permission to access the photo gallery at that time. Users have full control over granting or denying these permissions.&lt;br /&gt;
&lt;br /&gt;
== Policies and Age Verification ==&lt;br /&gt;
&lt;br /&gt;
The Moodle app supports the Moodle built-in [[Policies|policies]] functionality. If configured by the site administrators, before being able to access a Moodle site:&lt;br /&gt;
* Users will be shown all applicable policies, including mandatory and optional policies.&lt;br /&gt;
* If the site has an [[Privacy|age verification]] policy, the app will ensure users confirm their compliance before they can proceed.&lt;br /&gt;
&lt;br /&gt;
This ensures that all users are fully informed and consent to the terms set by the Moodle site.&lt;br /&gt;
&lt;br /&gt;
== Embedded Content from External Services ==&lt;br /&gt;
&lt;br /&gt;
Teachers and content creators may embed external content, such as videos or widgets. Such embedded content may allow third parties to set cookies or track users.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommendations for privacy-friendly embedding:&#039;&#039;&#039;&lt;br /&gt;
* Use YouTube’s no-cookie feature when embedding videos.&lt;br /&gt;
* For Vimeo, enable the [https://help.vimeo.com/hc/en-us/articles/12426260232977-About-Player-parameters “privacy dnt” parameter] to reduce tracking.&lt;br /&gt;
* For other content providers, please check their documentation.&lt;br /&gt;
&lt;br /&gt;
== Accessibility Features ==&lt;br /&gt;
&lt;br /&gt;
On Android and iOS devices, some features like accessibility services or password auto-fill may involve data processing by Google and/or Apple services (for text processing and reading and storage).&lt;br /&gt;
&lt;br /&gt;
These functionalities are part of their operating system and are not controlled by the Moodle app. We do not prevent its usage by default as they might be necessary in different types of scenarios or by certain organisations using the standard Moodle app.&lt;br /&gt;
&lt;br /&gt;
Users can manage or disable these features directly through their device settings.&lt;br /&gt;
&lt;br /&gt;
== Use of Firebase Framework ==&lt;br /&gt;
&lt;br /&gt;
The Moodle app uses Google’s Firebase framework to enable Push Notifications.&lt;br /&gt;
&lt;br /&gt;
After launching the app the Firebase framework generates a unique identifier (a random string of letters and numbers) to recognise the app for sending notifications. This identifier:&lt;br /&gt;
* Is used solely for basic functionality.&lt;br /&gt;
* Does not contain any private or personal data.&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier, users can opt out of Push Notifications entirely if they prefer. It will prevent the Firebase framework from generating additional ids or processing any type of information from the user or the site.&lt;br /&gt;
&lt;br /&gt;
== Cookies ==&lt;br /&gt;
&lt;br /&gt;
The Moodle app does not require cookies to function.&lt;br /&gt;
&lt;br /&gt;
When content is embedded from external sites, such as videos or widgets, those providers may set cookies. Those cookies will not persist between app sessions, as they are not stored in the app itself, they run in an isolated environment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[es:Privacidad en la Moodle app]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Privacy_in_the_Moodle_app&amp;diff=150330</id>
		<title>Privacy in the Moodle app</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Privacy_in_the_Moodle_app&amp;diff=150330"/>
		<updated>2024-12-04T07:25:38Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
The Moodle Mobile App is designed with user privacy in mind, ensuring data security and control for all users. Below is a summary of how the app handles user data and privacy-related concerns:&lt;br /&gt;
&lt;br /&gt;
== Communication Between the App and Moodle Site ==&lt;br /&gt;
&lt;br /&gt;
The Moodle app communicates directly with the Moodle site selected by the user.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No data is sent to third parties&#039;&#039;&#039; during interactions between the user and the mobile app. All communication initiated by the app happens securely between the app and the Moodle site.&lt;br /&gt;
&lt;br /&gt;
There are some scenarios that might involve third-party servers processing data when certain functionality is enabled in the Moodle site such as Push Notifications as described below.&lt;br /&gt;
&lt;br /&gt;
=== Push Notifications ===&lt;br /&gt;
&lt;br /&gt;
When enabled on the Moodle site, Push notifications may involve third-party servers like Moodle Airnotifier, Google (for Android) or Apple (for iOS). For example, a forum post message may travel through these servers for delivery.&lt;br /&gt;
&lt;br /&gt;
To enhance privacy, we recommend enabling &#039;&#039;&#039;[[Moodle app notifications|end-to-end encryption for Push Notifications]]&#039;&#039;&#039; via Moodle site settings. This ensures data is encrypted before leaving the site and decrypted only upon reaching the user’s device.&lt;br /&gt;
&lt;br /&gt;
Users can disable push notifications at anytime:&lt;br /&gt;
* In their device settings.&lt;br /&gt;
* While the app is launched for first time.&lt;br /&gt;
* Through the Moodle app settings.&lt;br /&gt;
* Directly within the Moodle site settings.&lt;br /&gt;
&lt;br /&gt;
Please check Moodle Data Processing Agreement available at https://moodle.com/privacy-notice/ for additional information.&lt;br /&gt;
&lt;br /&gt;
== App Permissions ==&lt;br /&gt;
&lt;br /&gt;
The Moodle Mobile App uses only the &#039;&#039;&#039;minimum permissions&#039;&#039;&#039; required for its functionality.&lt;br /&gt;
&lt;br /&gt;
Users are prompted to allow specific permissions only when necessary. For example: If a user wants to update their profile picture, the app will request permission to access the photo gallery at that time. Users have full control over granting or denying these permissions.&lt;br /&gt;
&lt;br /&gt;
== Policies and Age Verification ==&lt;br /&gt;
&lt;br /&gt;
The Moodle app supports the Moodle built-in policies functionality. If configured by the site administrators, before being able to access a Moodle site:&lt;br /&gt;
* Users will be shown all applicable policies, including mandatory and optional policies.&lt;br /&gt;
* If the site has an age verification policy, the app will ensure users confirm their compliance before they can proceed.&lt;br /&gt;
&lt;br /&gt;
This ensures that all users are fully informed and consent to the terms set by the Moodle site.&lt;br /&gt;
&lt;br /&gt;
== Embedded Content from External Services ==&lt;br /&gt;
&lt;br /&gt;
Teachers and content creators may embed external content, such as videos or widgets. Such embedded content may allow third parties to set cookies or track users.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommendations for privacy-friendly embedding:&#039;&#039;&#039;&lt;br /&gt;
* Use YouTube’s no-cookie feature when embedding videos.&lt;br /&gt;
* For Vimeo, enable the [https://help.vimeo.com/hc/en-us/articles/12426260232977-About-Player-parameters “privacy dnt” parameter] to reduce tracking.&lt;br /&gt;
* For other content providers, please check their documentation.&lt;br /&gt;
&lt;br /&gt;
== Accessibility Features ==&lt;br /&gt;
&lt;br /&gt;
On Android and iOS devices, some features like accessibility services or password auto-fill may involve data processing by Google and/or Apple services (for text processing and reading and storage).&lt;br /&gt;
&lt;br /&gt;
These functionalities are part of their operating system and are not controlled by the Moodle app. We do not prevent its usage by default as they might be necessary in different types of scenarios or by certain organisations using the standard Moodle app.&lt;br /&gt;
&lt;br /&gt;
Users can manage or disable these features directly through their device settings.&lt;br /&gt;
&lt;br /&gt;
== Use of Firebase Framework ==&lt;br /&gt;
&lt;br /&gt;
The Moodle app uses Google’s Firebase framework to enable Push Notifications.&lt;br /&gt;
&lt;br /&gt;
After launching the app the Firebase framework generates a unique identifier (a random string of letters and numbers) to recognise the app for sending notifications. This identifier:&lt;br /&gt;
* Is used solely for basic functionality.&lt;br /&gt;
* Does not contain any private or personal data.&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier, users can opt out of Push Notifications entirely if they prefer. It will prevent the Firebase framework from generating additional ids or processing any type of information from the user or the site.&lt;br /&gt;
&lt;br /&gt;
== Cookies ==&lt;br /&gt;
&lt;br /&gt;
The Moodle app does not require cookies to function.&lt;br /&gt;
&lt;br /&gt;
When content is embedded from external sites, such as videos or widgets, those providers may set cookies. Those cookies will not persist between app sessions, as they are not stored in the app itself, they run in an isolated environment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[es:Privacidad en la Moodle app]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Privacy_in_the_Moodle_app&amp;diff=150325</id>
		<title>Privacy in the Moodle app</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Privacy_in_the_Moodle_app&amp;diff=150325"/>
		<updated>2024-12-03T14:41:41Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Android Accessibility Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
The Moodle Mobile App is designed with user privacy in mind, ensuring data security and control for all users. Below is a summary of how the app handles user data and privacy-related concerns:&lt;br /&gt;
&lt;br /&gt;
== Communication Between the App and Moodle Site ==&lt;br /&gt;
&lt;br /&gt;
The Moodle app communicates directly with the Moodle site selected by the user.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No data is sent to third parties&#039;&#039;&#039; during interactions between the user and the mobile app. All communication initiated by the app happens securely between the app and the Moodle site.&lt;br /&gt;
&lt;br /&gt;
There are some scenarios that might involve third-party servers processing data when certain functionality is enabled in the Moodle site such as Push Notifications as described below.&lt;br /&gt;
&lt;br /&gt;
=== Push Notifications ===&lt;br /&gt;
&lt;br /&gt;
When enabled on the Moodle site, Push notifications may involve third-party servers like Moodle Airnotifier, Google (for Android) or Apple (for iOS). For example, a forum post message may travel through these servers for delivery.&lt;br /&gt;
&lt;br /&gt;
To enhance privacy, we recommend enabling &#039;&#039;&#039;[[Moodle app notifications|end-to-end encryption for Push Notifications]]&#039;&#039;&#039; via Moodle site settings. This ensures data is encrypted before leaving the site and decrypted only upon reaching the user’s device.&lt;br /&gt;
&lt;br /&gt;
Users can disable push notifications at anytime:&lt;br /&gt;
* In their device settings.&lt;br /&gt;
* While the app is launched for first time.&lt;br /&gt;
* Through the Moodle app settings.&lt;br /&gt;
* Directly within the Moodle site settings.&lt;br /&gt;
&lt;br /&gt;
Please check Moodle Data Processing Agreement available at https://moodle.com/privacy-notice/ for additional information.&lt;br /&gt;
&lt;br /&gt;
== App Permissions ==&lt;br /&gt;
&lt;br /&gt;
The Moodle Mobile App uses only the &#039;&#039;&#039;minimum permissions&#039;&#039;&#039; required for its functionality.&lt;br /&gt;
&lt;br /&gt;
Users are prompted to allow specific permissions only when necessary. For example: If a user wants to update their profile picture, the app will request permission to access the photo gallery at that time. Users have full control over granting or denying these permissions.&lt;br /&gt;
&lt;br /&gt;
== Embedded Content from External Services ==&lt;br /&gt;
&lt;br /&gt;
Teachers and content creators may embed external content, such as videos or widgets. Such embedded content may allow third parties to set cookies or track users.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommendations for privacy-friendly embedding:&#039;&#039;&#039;&lt;br /&gt;
* Use YouTube’s no-cookie feature when embedding videos.&lt;br /&gt;
* For Vimeo, enable the [https://help.vimeo.com/hc/en-us/articles/12426260232977-About-Player-parameters “privacy dnt” parameter] to reduce tracking.&lt;br /&gt;
* For other content providers, please check their documentation.&lt;br /&gt;
&lt;br /&gt;
== Accessibility Features ==&lt;br /&gt;
&lt;br /&gt;
On Android and iOS devices, some features like accessibility services or password auto-fill may involve data processing by Google and/or Apple services (for text processing and reading and storage).&lt;br /&gt;
&lt;br /&gt;
These functionalities are part of their operating system and are not controlled by the Moodle app. We do not prevent its usage by default as they might be necessary in different types of scenarios or by certain organisations using the standard Moodle app.&lt;br /&gt;
&lt;br /&gt;
Users can manage or disable these features directly through their device settings.&lt;br /&gt;
&lt;br /&gt;
== Use of Firebase Framework ==&lt;br /&gt;
&lt;br /&gt;
The Moodle app uses Google’s Firebase framework to enable Push Notifications.&lt;br /&gt;
&lt;br /&gt;
After launching the app the Firebase framework generates a unique identifier (a random string of letters and numbers) to recognise the app for sending notifications. This identifier:&lt;br /&gt;
* Is used solely for basic functionality.&lt;br /&gt;
* Does not contain any private or personal data.&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier, users can opt out of Push Notifications entirely if they prefer. It will prevent the Firebase framework from generating additional ids or processing any type of information from the user or the site.&lt;br /&gt;
&lt;br /&gt;
== Cookies ==&lt;br /&gt;
&lt;br /&gt;
The Moodle app does not require cookies to function.&lt;br /&gt;
&lt;br /&gt;
When content is embedded from external sites, such as videos or widgets, those providers may set cookies. Those cookies will not persist between app sessions, as they are not stored in the app itself, they run in an isolated environment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[es:Privacidad en la Moodle app]]&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Privacy_in_the_Moodle_app&amp;diff=150323</id>
		<title>Privacy in the Moodle app</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Privacy_in_the_Moodle_app&amp;diff=150323"/>
		<updated>2024-12-03T14:38:20Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
The Moodle Mobile App is designed with user privacy in mind, ensuring data security and control for all users. Below is a summary of how the app handles user data and privacy-related concerns:&lt;br /&gt;
&lt;br /&gt;
== Communication Between the App and Moodle Site ==&lt;br /&gt;
&lt;br /&gt;
The Moodle app communicates directly with the Moodle site selected by the user.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No data is sent to third parties&#039;&#039;&#039; during interactions between the user and the mobile app. All communication initiated by the app happens securely between the app and the Moodle site.&lt;br /&gt;
&lt;br /&gt;
There are some scenarios that might involve third-party servers processing data when certain functionality is enabled in the Moodle site such as Push Notifications as described below.&lt;br /&gt;
&lt;br /&gt;
=== Push Notifications ===&lt;br /&gt;
&lt;br /&gt;
When enabled on the Moodle site, Push notifications may involve third-party servers like Moodle Airnotifier, Google (for Android) or Apple (for iOS). For example, a forum post message may travel through these servers for delivery.&lt;br /&gt;
&lt;br /&gt;
To enhance privacy, we recommend enabling &#039;&#039;&#039;[[Moodle app notifications|end-to-end encryption for Push Notifications]]&#039;&#039;&#039; via Moodle site settings. This ensures data is encrypted before leaving the site and decrypted only upon reaching the user’s device.&lt;br /&gt;
&lt;br /&gt;
Users can disable push notifications at anytime:&lt;br /&gt;
* In their device settings.&lt;br /&gt;
* While the app is launched for first time.&lt;br /&gt;
* Through the Moodle app settings.&lt;br /&gt;
* Directly within the Moodle site settings.&lt;br /&gt;
&lt;br /&gt;
Please check Moodle Data Processing Agreement available at https://moodle.com/privacy-notice/ for additional information.&lt;br /&gt;
&lt;br /&gt;
== App Permissions ==&lt;br /&gt;
&lt;br /&gt;
The Moodle Mobile App uses only the &#039;&#039;&#039;minimum permissions&#039;&#039;&#039; required for its functionality.&lt;br /&gt;
&lt;br /&gt;
Users are prompted to allow specific permissions only when necessary. For example: If a user wants to update their profile picture, the app will request permission to access the photo gallery at that time. Users have full control over granting or denying these permissions.&lt;br /&gt;
&lt;br /&gt;
== Embedded Content from External Services ==&lt;br /&gt;
&lt;br /&gt;
Teachers and content creators may embed external content, such as videos or widgets. Such embedded content may allow third parties to set cookies or track users.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommendations for privacy-friendly embedding:&#039;&#039;&#039;&lt;br /&gt;
* Use YouTube’s no-cookie feature when embedding videos.&lt;br /&gt;
* For Vimeo, enable the [https://help.vimeo.com/hc/en-us/articles/12426260232977-About-Player-parameters “privacy dnt” parameter] to reduce tracking.&lt;br /&gt;
* For other content providers, please check their documentation.&lt;br /&gt;
&lt;br /&gt;
== Android Accessibility Features ==&lt;br /&gt;
&lt;br /&gt;
On Android devices, some features like accessibility services or password auto-fill may involve data processing by Google services (for text processing and reading and storage).&lt;br /&gt;
&lt;br /&gt;
These functionalities are part of Android&#039;s operating system and are not controlled by the Moodle app. We do not prevent its usage by default as they might be necessary in different types of scenarios.&lt;br /&gt;
&lt;br /&gt;
Users can manage or disable these features directly through their Android device settings.&lt;br /&gt;
&lt;br /&gt;
== Use of Firebase Framework ==&lt;br /&gt;
&lt;br /&gt;
The Moodle app uses Google’s Firebase framework to enable Push Notifications.&lt;br /&gt;
&lt;br /&gt;
After launching the app the Firebase framework generates a unique identifier (a random string of letters and numbers) to recognise the app for sending notifications. This identifier:&lt;br /&gt;
* Is used solely for basic functionality.&lt;br /&gt;
* Does not contain any private or personal data.&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier, users can opt out of Push Notifications entirely if they prefer. It will prevent the Firebase framework from generating additional ids or processing any type of information from the user or the site.&lt;br /&gt;
&lt;br /&gt;
== Cookies ==&lt;br /&gt;
&lt;br /&gt;
The Moodle app does not require cookies to function.&lt;br /&gt;
&lt;br /&gt;
When content is embedded from external sites, such as videos or widgets, those providers may set cookies. Those cookies will not persist between app sessions, as they are not stored in the app itself, they run in an isolated environment.&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Privacy_in_the_Moodle_app&amp;diff=150319</id>
		<title>Privacy in the Moodle app</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Privacy_in_the_Moodle_app&amp;diff=150319"/>
		<updated>2024-12-03T14:28:47Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* Use of Firebase Framework */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
The Moodle Mobile App is designed with user privacy in mind, ensuring data security and control for all users. Below is a summary of how the app handles user data and privacy-related concerns:&lt;br /&gt;
&lt;br /&gt;
== Communication Between the App and Moodle Site ==&lt;br /&gt;
&lt;br /&gt;
The Moodle app communicates directly with the Moodle site selected by the user.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No data is sent to third parties&#039;&#039;&#039; during this interaction. All communication happens securely between the app and the Moodle site.&lt;br /&gt;
&lt;br /&gt;
== Push Notifications ==&lt;br /&gt;
&lt;br /&gt;
When enabled, Push notifications may involve third-party servers like Google (for Android) or Apple (for iOS). For example, a forum post message may travel through these servers for delivery.&lt;br /&gt;
&lt;br /&gt;
To enhance privacy, we recommend enabling &#039;&#039;&#039;[[Moodle app notifications|end-to-end encryption for Push Notifications]]&#039;&#039;&#039; via Moodle site settings. This ensures data is encrypted before leaving the site and decrypted only upon reaching the user’s device.&lt;br /&gt;
&lt;br /&gt;
Users can disable push notifications at anytime:&lt;br /&gt;
* In their device settings.&lt;br /&gt;
* While the app is launched for first time.&lt;br /&gt;
* Through the Moodle app settings.&lt;br /&gt;
* Directly within the Moodle site settings.&lt;br /&gt;
&lt;br /&gt;
== App Permissions ==&lt;br /&gt;
&lt;br /&gt;
The Moodle Mobile App uses only the &#039;&#039;&#039;minimum permissions&#039;&#039;&#039; required for its functionality.&lt;br /&gt;
&lt;br /&gt;
Users are prompted to allow specific permissions only when necessary. For example: If a user wants to update their profile picture, the app will request permission to access the photo gallery at that time. Users have full control over granting or denying these permissions.&lt;br /&gt;
&lt;br /&gt;
== Embedded Content from External Services ==&lt;br /&gt;
&lt;br /&gt;
Teachers and content creators may embed external content, such as videos or widgets. Such embedded content may allow third parties to set cookies or track users.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommendations for privacy-friendly embedding:&#039;&#039;&#039;&lt;br /&gt;
* Use YouTube’s no-cookie feature when embedding videos.&lt;br /&gt;
* For Vimeo, enable the [https://help.vimeo.com/hc/en-us/articles/12426260232977-About-Player-parameters “privacy dnt” parameter] to reduce tracking.&lt;br /&gt;
* For other content providers, please check their documentation.&lt;br /&gt;
&lt;br /&gt;
== Android Accessibility Features ==&lt;br /&gt;
&lt;br /&gt;
On Android devices, some features like accessibility services or password auto-fill may involve data processing by Google services (for text processing and reading and storage).&lt;br /&gt;
&lt;br /&gt;
These functionalities are part of Android&#039;s operating system and are not controlled by the Moodle app. We do not prevent its usage by default as they might be necessary in different types of scenarios.&lt;br /&gt;
&lt;br /&gt;
Users can manage or disable these features directly through their Android device settings.&lt;br /&gt;
&lt;br /&gt;
== Use of Firebase Framework ==&lt;br /&gt;
&lt;br /&gt;
The Moodle app uses Google’s Firebase framework to enable Push Notifications.&lt;br /&gt;
&lt;br /&gt;
After launching the app the Firebase framework generates a unique identifier (a random string of letters and numbers) to recognise the app for sending notifications. This identifier:&lt;br /&gt;
* Is used solely for basic functionality.&lt;br /&gt;
* Does not contain any private or personal data.&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier, users can opt out of Push Notifications entirely if they prefer. It will prevent the Firebase framework from generating additional ids or processing any type of information from the user or the site.&lt;br /&gt;
&lt;br /&gt;
Please check Moodle Data Processing Agreement available at https://moodle.com/privacy-notice/ for additional information.&lt;br /&gt;
&lt;br /&gt;
== Cookies ==&lt;br /&gt;
&lt;br /&gt;
The Moodle app does not require cookies to function.&lt;br /&gt;
&lt;br /&gt;
When content is embedded from external sites, such as videos or widgets, those providers may set cookies. Those cookies will not persist between app sessions, as they are not stored in the app itself, they run in an isolated environment.&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Privacy_in_the_Moodle_app&amp;diff=150318</id>
		<title>Privacy in the Moodle app</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Privacy_in_the_Moodle_app&amp;diff=150318"/>
		<updated>2024-12-03T14:27:35Z</updated>

		<summary type="html">&lt;p&gt;Jleyva: /* App Permissions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mobile}}&lt;br /&gt;
The Moodle Mobile App is designed with user privacy in mind, ensuring data security and control for all users. Below is a summary of how the app handles user data and privacy-related concerns:&lt;br /&gt;
&lt;br /&gt;
== Communication Between the App and Moodle Site ==&lt;br /&gt;
&lt;br /&gt;
The Moodle app communicates directly with the Moodle site selected by the user.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No data is sent to third parties&#039;&#039;&#039; during this interaction. All communication happens securely between the app and the Moodle site.&lt;br /&gt;
&lt;br /&gt;
== Push Notifications ==&lt;br /&gt;
&lt;br /&gt;
When enabled, Push notifications may involve third-party servers like Google (for Android) or Apple (for iOS). For example, a forum post message may travel through these servers for delivery.&lt;br /&gt;
&lt;br /&gt;
To enhance privacy, we recommend enabling &#039;&#039;&#039;[[Moodle app notifications|end-to-end encryption for Push Notifications]]&#039;&#039;&#039; via Moodle site settings. This ensures data is encrypted before leaving the site and decrypted only upon reaching the user’s device.&lt;br /&gt;
&lt;br /&gt;
Users can disable push notifications at anytime:&lt;br /&gt;
* In their device settings.&lt;br /&gt;
* While the app is launched for first time.&lt;br /&gt;
* Through the Moodle app settings.&lt;br /&gt;
* Directly within the Moodle site settings.&lt;br /&gt;
&lt;br /&gt;
== App Permissions ==&lt;br /&gt;
&lt;br /&gt;
The Moodle Mobile App uses only the &#039;&#039;&#039;minimum permissions&#039;&#039;&#039; required for its functionality.&lt;br /&gt;
&lt;br /&gt;
Users are prompted to allow specific permissions only when necessary. For example: If a user wants to update their profile picture, the app will request permission to access the photo gallery at that time. Users have full control over granting or denying these permissions.&lt;br /&gt;
&lt;br /&gt;
== Embedded Content from External Services ==&lt;br /&gt;
&lt;br /&gt;
Teachers and content creators may embed external content, such as videos or widgets. Such embedded content may allow third parties to set cookies or track users.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommendations for privacy-friendly embedding:&#039;&#039;&#039;&lt;br /&gt;
* Use YouTube’s no-cookie feature when embedding videos.&lt;br /&gt;
* For Vimeo, enable the [https://help.vimeo.com/hc/en-us/articles/12426260232977-About-Player-parameters “privacy dnt” parameter] to reduce tracking.&lt;br /&gt;
* For other content providers, please check their documentation.&lt;br /&gt;
&lt;br /&gt;
== Android Accessibility Features ==&lt;br /&gt;
&lt;br /&gt;
On Android devices, some features like accessibility services or password auto-fill may involve data processing by Google services (for text processing and reading and storage).&lt;br /&gt;
&lt;br /&gt;
These functionalities are part of Android&#039;s operating system and are not controlled by the Moodle app. We do not prevent its usage by default as they might be necessary in different types of scenarios.&lt;br /&gt;
&lt;br /&gt;
Users can manage or disable these features directly through their Android device settings.&lt;br /&gt;
&lt;br /&gt;
== Use of Firebase Framework ==&lt;br /&gt;
&lt;br /&gt;
The Moodle app uses Google’s Firebase framework to enable Push Notifications.&lt;br /&gt;
&lt;br /&gt;
Firebase generates a unique identifier (a random string of letters and numbers) to recognise the app for sending notifications. This identifier:&lt;br /&gt;
* Is used solely for basic functionality.&lt;br /&gt;
* Does not contain any private or personal data.&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier, users can opt out of Push Notifications entirely if they prefer. It will prevent the Firebase framework for generating additional ids or processing any type of information from the user or the site.&lt;br /&gt;
&lt;br /&gt;
Please check Moodle Data Processing Agreement available at https://moodle.com/privacy-notice/ for additional information.&lt;br /&gt;
&lt;br /&gt;
== Cookies ==&lt;br /&gt;
&lt;br /&gt;
The Moodle app does not require cookies to function.&lt;br /&gt;
&lt;br /&gt;
When content is embedded from external sites, such as videos or widgets, those providers may set cookies. Those cookies will not persist between app sessions, as they are not stored in the app itself, they run in an isolated environment.&lt;/div&gt;</summary>
		<author><name>Jleyva</name></author>
	</entry>
</feed>