Skip to content

Commit 1c5e94b

Browse files
authored
Merge pull request #1645 from moodlemobile/app-docs
Updated documentation for latest mobile app version
2 parents 4d8c7fa + 73d8099 commit 1c5e94b

6 files changed

Lines changed: 167 additions & 9 deletions

File tree

‎general/app/development/link-handling/app-links.md‎

Lines changed: 51 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,26 +11,36 @@ tags:
1111
When a user presses a link in the Moodle app, the behaviour changes depending on whether the URL is supported by the app or not:
1212

1313
- If the URL belongs to the same site and it's supported by the app, then the app will try to open the corresponding page. For example if the user presses a link to an assignment, then the assignment will be opened inside the app rather than opening a browser.
14-
- If it's a URL pointing to an external site or it's a URL not supported by the app, then it will be opened in an external browser. This can also be configured to [open in an embedded browser](#opening-links-in-an-embedded-browser). For example admin settings aren't supported by the app, so clicking a link to an admin settings page will open the page in an external browser.
14+
- If it's a URL pointing to an external site or it's a URL not supported by the app, then it will be opened in an external browser. This can also be configured to [open in an embedded browser](#opening-links-in-an-embedded-browser-or-in-an-iframe). For example admin settings aren't supported by the app, so clicking a link to an admin settings page will open the page in an external browser.
1515
- If it's a URL pointing to a local file it will be opened with an external app in Android, and an embedded viewer in iOS. For example opening a PDF within a SCORM package would open a PDF reader in Android or and embedded PDF viewer in iOS.
1616
- If the link is inside an iframe (and is not pointing to a local file), it will be opened within the same iframe. This behaviour can be changed by setting the link's `target` attribute to anything other than `_self`, in which case the URL will be opened in an external browser. For example, clicking a link with a `target="_blank"` attribute would open the URL in an external browser.
1717

1818
## Extending the list of supported URLs {/* #extending-the-list-of-supported-urls */}
1919

2020
The app has a defined list of supported URLs. If you have a plugin adapted to work in the app and you want to support links to your plugin you will need to create a Link Handler. For more information and examples about this, please see the [CoreContentLinksDelegate](../plugins-development-guide/api-reference.md#corecontentlinksdelegate) documentation.
2121

22-
## Opening links in an embedded browser {/* #opening-links-in-an-embedded-browser */}
22+
## Opening links in an embedded browser or in an iframe {/* #opening-links-in-an-embedded-browser-or-in-an-iframe */}
2323

24-
To open a link in an embedded browser instead of an external browser you can use the `data-open-in` attribute:
24+
To change how links are opened in the app you can use the `data-app-open-in` attribute:
2525

2626
```html
27-
<a href="https://domain.com" data-open-in="app">
27+
<a href="https://domain.com" data-app-open-in="inappbrowser">
2828
```
2929

30+
Possible values are:
31+
32+
- `inappbrowser`: Opens the link in an embedded browser instead of external browser.
33+
- `embedded`: Displays the site inside the app, using an iframe. Only works in Moodle app 5.2 or later.
34+
- Any other value: Opens the link in external browser (e.g. Chrome or Safari).
35+
3036
:::note[Notice]
3137
Please notice that students cannot add data attributes to HTML elements when using the Moodle editor, only teachers and users with the right permissions are able to add them.
3238
:::
3339

40+
:::note[Notice]
41+
Please notice that the `data-app-open-in` name will only work in Moodle app 5.2 or later. In previous versions, the name was `data-open-in`, which is deprecated.
42+
:::
43+
3444
## Adding links to any HTML element {/* #adding-links-to-any-html-element */}
3545

3646
Using the `data-app-url` attribute you can also add a link to any HTML element. This link will only be used when the element is clicked in the app, it won't affect the behaviour when using a browser.
@@ -55,16 +65,16 @@ When the link above is clicked in browser it will open `https://domain.com`, but
5565

5666
The behaviour can be customised with the following data attributes:
5767

58-
- `data-open-in`: Set it to "app" to open the page in an embedded browser instead of the system browser.
59-
- `data-app-url-confirm`: A confirmation message to be displayed before opening the browser.
60-
- `data-app-url-resume-action`: Set it to "refresh" to update the course page when the user goes back to the app. Right now this only works in the course page, but in the future it might be added to other pages.
68+
- `data-app-open-in`: To change how the link is opened in the app. Please see [Opening links in an embedded browser or in an iframe](#opening-links-in-an-embedded-browser-or-in-an-iframe) to view the possible values.
69+
- `data-app-url-confirm`: A confirmation message to be displayed before opening the link.
70+
- `data-app-url-resume-action`: Set it to "refresh" to update the course page when the user goes back to the app. Right now this only works in the course page, but in the future it might be added to other pages. It only works for embedded browser or system browser, it doesn't work if `data-app-open-in="embedded"`.
6171

6272
An example using all the attributes:
6373

6474
```html
6575
<button
6676
data-app-url="https://anotherdomain.com"
67-
data-open-in="app"
77+
data-app-open-in="inappbrowser"
6878
data-app-url-confirm="You need to enrol to the course in the browser."
6979
data-app-url-resume-action="refresh"
7080
>
@@ -75,3 +85,36 @@ An example using all the attributes:
7585
:::note[Notice]
7686
Please notice that students cannot add data attributes to HTML elements when using the Moodle editor, only teachers and users with the right permissions are able to add them.
7787
:::
88+
89+
## Display alternative content in the app {/* #display-alternative-content-in-the-app */}
90+
91+
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.
92+
93+
To do so, you can use the following attributes:
94+
95+
- `data-app-alt-msg`: The text to display inside the element. If not present, only `data-app-alt-url` will be displayed.
96+
- `data-app-alt-url`: A clickable URL that appears after the message text.
97+
98+
This `data-app-alt-url` attribute can be combined with any data attribute explained in [Adding links to any HTML element](#adding-links-to-any-html-element): `data-app-open-in`, `data-app-url-confirm` and `data-app-url-resume-action`.
99+
100+
Since Moodle app 5.2 you can also use the following attributes:
101+
102+
- `data-app-alt-url-type`: Set it to "button" to display a button instead of a link.
103+
- `data-app-alt-url-label`: The text to display in the button or the link. If not set, the URL will be displayed.
104+
105+
An example using several attributes:
106+
107+
```html
108+
<div
109+
data-app-alt-url="https://videourl.com"
110+
data-app-alt-msg="This video is not compatible with the app. Please click the button to open it in a browser."
111+
data-app-alt-url-type="button"
112+
data-app-alt-url-label="Watch video"
113+
>
114+
<iframe src="https://videonotappcompatible.com"></iframe>
115+
</div>
116+
```
117+
118+
:::note[Notice]
119+
Please notice that students cannot add data attributes to HTML elements when using the Moodle editor, only teachers and users with the right permissions are able to add them.
120+
:::

‎general/app/development/plugins-development-guide/index.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,7 @@ If you want to see some real examples, you can find plugins with mobile support
382382
- [ForumNG module](https://github.com/moodleou/moodle-mod_forumng)
383383
- [News block](https://github.com/moodleou/moodle-block_news)
384384

385-
See [the complete list](https://moodle.org/plugins/browse.php?list=award&id=6) to find more, but keep in mind that it may contain some outdated plugins.
385+
See [the complete list](https://docs.moodle.org/en/Plugins_with_mobile_app_support) to find more, but keep in mind that it may contain some outdated plugins.
386386

387387
### Mobile app support award {/* #mobile-app-support-award */}
388388

‎general/app/development/plugins-development-guide/troubleshooting.md‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,17 @@ Each field in `otherdata` must be a string, number or boolean; it cannot be an o
4747
```
4848

4949
The app will parse the string and it will be available as an array or object.
50+
51+
## I want to display embedded content that requires the Moodle site as referer {/* #i-want-to-display-embedded-content-that-requires-the-moodle-site-as-referer */}
52+
53+
In Moodle 5.2 ([MDL-87082](https://moodle.atlassian.net/browse/MDL-87082)), a new script was added to support embedding content in the app using the Moodle site as the referer. Moodle App 5.2 and later support this script.
54+
55+
To use it in your plugin, there are two different approaches:
56+
57+
1. If you're rendering HTML content using `core-format-text`, the iframe elements that need a referer should have `data-app-site-referer="true"`.
58+
59+
2. If your plugin renders the iframe directly, use `core-iframe` with `addSiteReferer` set to true:
60+
61+
```html ng2
62+
<core-iframe src="<% src %>" [addSiteReferer]="true"></core-iframe>
63+
```

‎general/app_releases.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ tags:
1010

1111
| **Version name** | **Date** |
1212
|---|---|
13+
| [Moodle App 5.2.1](./app_releases/v5/v5.2.1) | 10 July 2026 |
14+
| [Moodle App 5.2.0](./app_releases/v5/v5.2.0) | 29 May 2026 |
1315
| [Moodle App 5.1.0](./app_releases/v5/v5.1.0) | 9 January 2026 |
1416
| [Moodle App 5.0.0](./app_releases/v5/v5.0.0) | 27 June 2025 |
1517

‎general/app_releases/v5/v5.2.0.md‎

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
---
2+
title: Moodle App 5.2.0 release notes
3+
sidebar_label: Moodle App 5.2.0
4+
tags:
5+
- Moodle App
6+
- Release notes
7+
---
8+
9+
Release date: 29 May 2026
10+
11+
### New Feature {/* #new-feature */}
12+
13+
- [MOBILE-5018](https://moodle.atlassian.net/browse/MOBILE-5018) - Allow adding extra items in the developer settings page to open new pages
14+
- [MOBILE-5005](https://moodle.atlassian.net/browse/MOBILE-5005) - Support new routes added in Moodle 5.2
15+
- [MOBILE-4999](https://moodle.atlassian.net/browse/MOBILE-4999) - Support new Site home and My courses visibility settings
16+
- [MOBILE-4982](https://moodle.atlassian.net/browse/MOBILE-4982) - Allow launching deep link URLs in the webapp using a parameter
17+
- [MOBILE-4919](https://moodle.atlassian.net/browse/MOBILE-4919) - Allow overriding Web Service responses via app configuration
18+
- [MOBILE-4911](https://moodle.atlassian.net/browse/MOBILE-4911) - Allow site plugins to not only add menu items (in the more menu, user menu, user profile) but also HTML content
19+
- [MOBILE-4910](https://moodle.atlassian.net/browse/MOBILE-4910) - Support custom user menu items
20+
- [MOBILE-4874](https://moodle.atlassian.net/browse/MOBILE-4874) - Support the new assign multiple marking
21+
22+
### Task {/* #task */}
23+
24+
- [MOBILE-5030](https://moodle.atlassian.net/browse/MOBILE-5030) - Investigate SQLite storage alternatives for browser testing
25+
- [MOBILE-4979](https://moodle.atlassian.net/browse/MOBILE-4979) - Rename singletons to static classes when appropriate
26+
- [MOBILE-4974](https://moodle.atlassian.net/browse/MOBILE-4974) - Release Moodle App version 5.2.0
27+
28+
### Improvement {/* #improvement */}
29+
30+
- [MOBILE-5054](https://moodle.atlassian.net/browse/MOBILE-5054) - Update to Node 24+ and npm 11+, and add security settings like minimumReleaseAge
31+
- [MOBILE-5033](https://moodle.atlassian.net/browse/MOBILE-5033) - Apply the redirect script solution in videos displayed inside downloaded iframes (e.g. SCORM or H5P)
32+
- [MOBILE-5026](https://moodle.atlassian.net/browse/MOBILE-5026) - Update H5P library to 1.28 in the app
33+
- [MOBILE-5019](https://moodle.atlassian.net/browse/MOBILE-5019) - Open and close dates are displayed twice in BBB in the app
34+
- [MOBILE-5014](https://moodle.atlassian.net/browse/MOBILE-5014) - Add the possibility to add a footer message on the storage manager courses page
35+
- [MOBILE-5013](https://moodle.atlassian.net/browse/MOBILE-5013) - Don't display errors when saving H5P state and statements
36+
- [MOBILE-5011](https://moodle.atlassian.net/browse/MOBILE-5011) - When handling a site url, add a button to add an account on the site chooser modal
37+
- [MOBILE-5010](https://moodle.atlassian.net/browse/MOBILE-5010) - Allow selections that aren't strings in core-combobox
38+
- [MOBILE-5006](https://moodle.atlassian.net/browse/MOBILE-5006) - Add customisations for custom menu items and settings handler
39+
- [MOBILE-5004](https://moodle.atlassian.net/browse/MOBILE-5004) - Add context to copilot reviews
40+
- [MOBILE-5002](https://moodle.atlassian.net/browse/MOBILE-5002) - Create a new alert card component
41+
- [MOBILE-4996](https://moodle.atlassian.net/browse/MOBILE-4996) - Improve unit tests to reduce complexity and improve types
42+
- [MOBILE-4988](https://moodle.atlassian.net/browse/MOBILE-4988) - Create a new CoreCoursePrefetch service
43+
- [MOBILE-4983](https://moodle.atlassian.net/browse/MOBILE-4983) - Detect admin and manager roles
44+
- [MOBILE-4977](https://moodle.atlassian.net/browse/MOBILE-4977) - Remove some overrides for eslint recommended rules
45+
- [MOBILE-4971](https://moodle.atlassian.net/browse/MOBILE-4971) - Provide a way to stop the app from grouping Web Services requests to facilitate debugging
46+
- [MOBILE-4967](https://moodle.atlassian.net/browse/MOBILE-4967) - Add some functions to override features for Workplace app 5.1
47+
- [MOBILE-4961](https://moodle.atlassian.net/browse/MOBILE-4961) - Remove the "Welcome to Moodle" screen that ask if the user is a teacher or student
48+
- [MOBILE-4959](https://moodle.atlassian.net/browse/MOBILE-4959) - Apply consistency to user generated data attributes
49+
- [MOBILE-4948](https://moodle.atlassian.net/browse/MOBILE-4948) - Listen language changes on pipes (specially coreFormatDate)
50+
- [MOBILE-4945](https://moodle.atlassian.net/browse/MOBILE-4945) - Stop closing the app when opening the browser for SSO login
51+
- [MOBILE-4939](https://moodle.atlassian.net/browse/MOBILE-4939) - Support the new can display property returned by core_course_get_course_contents
52+
- [MOBILE-4931](https://moodle.atlassian.net/browse/MOBILE-4931) - Disable collapsible header when there is an active split view
53+
- [MOBILE-4927](https://moodle.atlassian.net/browse/MOBILE-4927) - Replace calls to lib/ajax/service.php with the no-login version
54+
- [MOBILE-4925](https://moodle.atlassian.net/browse/MOBILE-4925) - Use the new redirection script on Moodle LMS to support embedding content that requires a Moodle LMS site referer
55+
- [MOBILE-4920](https://moodle.atlassian.net/browse/MOBILE-4920) - Use new WebService mod_quiz_get_user_quiz_attempts
56+
- [MOBILE-4917](https://moodle.atlassian.net/browse/MOBILE-4917) - Allow to inject remote JavaScript scripts via Moodle LMS settings
57+
- [MOBILE-4912](https://moodle.atlassian.net/browse/MOBILE-4912) - Allow to indicate the order preference for the different elements in the main bottom tabs menu
58+
- [MOBILE-4901](https://moodle.atlassian.net/browse/MOBILE-4901) - Update @ngx-translate to version 17
59+
- [MOBILE-4876](https://moodle.atlassian.net/browse/MOBILE-4876) - If a block is rendered in the app before site plugins are registered, site plugins blocks won't be displayed
60+
- [MOBILE-4875](https://moodle.atlassian.net/browse/MOBILE-4875) - Improve print_behat_tags script to avoid using @app
61+
- [MOBILE-4731](https://moodle.atlassian.net/browse/MOBILE-4731) - Optional address field visibility
62+
- [MOBILE-4332](https://moodle.atlassian.net/browse/MOBILE-4332) - Refresh contact requests automatically when push is received
63+
- [MOBILE-3890](https://moodle.atlassian.net/browse/MOBILE-3890) - Support course forced language in the app interface
64+
65+
### Bug {/* #bug */}
66+
67+
{/* <!-- cspell:disable --> */}
68+
69+
- [MOBILE-5060](https://moodle.atlassian.net/browse/MOBILE-5060) - YouTube videos sometimes not working in iOS 18 or older
70+
- [MOBILE-5058](https://moodle.atlassian.net/browse/MOBILE-5058) - H5P addons are not properly parsed and loaded
71+
- [MOBILE-5024](https://moodle.atlassian.net/browse/MOBILE-5024) - App crashes when the Mobile CSS URL includes plain text data in url function
72+
- [MOBILE-5022](https://moodle.atlassian.net/browse/MOBILE-5022) - Site calendar events are not syncing as expected when site events are deleted but they were previously scheduled on the app
73+
- [MOBILE-5015](https://moodle.atlassian.net/browse/MOBILE-5015) - Angular v20.3.16 causes problems with our core-loading animations
74+
- [MOBILE-4998](https://moodle.atlassian.net/browse/MOBILE-4998) - Site pugin blocks are not re-fetching content when PTR is done
75+
- [MOBILE-4990](https://moodle.atlassian.net/browse/MOBILE-4990) - Quiz - Highest grade issues
76+
- [MOBILE-4987](https://moodle.atlassian.net/browse/MOBILE-4987) - Show completion manual rules in details for teachers
77+
- [MOBILE-4980](https://moodle.atlassian.net/browse/MOBILE-4980) - Don't allow viewing user profile if cannot view it due to moodle/user:viewdetails capability
78+
- [MOBILE-4969](https://moodle.atlassian.net/browse/MOBILE-4969) - Web Service token and private token might be logged on the app if the auto-login WebService fails
79+
- [MOBILE-4966](https://moodle.atlassian.net/browse/MOBILE-4966) - ESLint sometimes crashes with an out of memory error
80+
- [MOBILE-4964](https://moodle.atlassian.net/browse/MOBILE-4964) - Courses list block (course_list) is not behaving consistently with the web version
81+
- [MOBILE-4958](https://moodle.atlassian.net/browse/MOBILE-4958) - The cordova-plugin-advanced-http plugin completely ignores Android network_security_config.xml configuration
82+
- [MOBILE-4941](https://moodle.atlassian.net/browse/MOBILE-4941) - When reading HTTP headers, the app should be case insensitive
83+
- [MOBILE-4923](https://moodle.atlassian.net/browse/MOBILE-4923) - Inserting records in wasm sqlite (webapp) doesn't return the new ID
84+
- [MOBILE-4915](https://moodle.atlassian.net/browse/MOBILE-4915) - Quiz overall feedback not displayed on the app when Marks review option is disabled
85+
- [MOBILE-4907](https://moodle.atlassian.net/browse/MOBILE-4907) - BBB students don't get notified or are automatically let in when the moderator joins a meeting so they get stuck on the app
86+
- [MOBILE-4904](https://moodle.atlassian.net/browse/MOBILE-4904) - Choice module is not displaying the student choice when configured to show anonymous results

‎general/app_releases/v5/v5.2.1.md‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
title: Moodle App 5.2.1 release notes
3+
sidebar_label: Moodle App 5.2.1
4+
tags:
5+
- Moodle App
6+
- Release notes
7+
---
8+
9+
Release date: 10 July 2026
10+
11+
### Security fix {/* #security-fix */}
12+
13+
- [MOBILE-5071](https://moodle.atlassian.net/browse/MOBILE-5071) - Site plugin can read web service tokens from other stored sites

0 commit comments

Comments
 (0)