81 lines
2.5 KiB
Markdown
81 lines
2.5 KiB
Markdown
# Mobile App Integration Manual
|
|
|
|
## Overview
|
|
This document outlines the initialization flow for the mobile application, specifically focusing on the version check process ensuring users are on the latest or a supported version of the app.
|
|
|
|
## App Launch Flow
|
|
|
|
When the mobile application launches, it must perform a version check against the API to determine if an update is available or mandatory.
|
|
|
|
### Flow Logic
|
|
1. **App Launch**: User opens the application.
|
|
2. **Check Version**: The app sends a request to the API with its current version and operating system.
|
|
3. **Handle Response**:
|
|
* **Update Required**: If the update is critical/mandatory, show a **blocking modal**. The user cannot dismiss it and must click a button to go to the App Store or Google Play Store.
|
|
* **Update Optional**: If a new version is available but not mandatory, show a **dismissible notification** or modal suggesting the user to update for a better experience.
|
|
* **Latest Version**: If the app is up-to-date, proceed to the app home screen silently.
|
|
* **Version Not Found**: If the version is not recognized (e.g., development build), do not show any update prompts.
|
|
|
|
## API Reference
|
|
|
|
### Check App Version
|
|
|
|
**Endpoint**
|
|
`POST /api/app-version`
|
|
|
|
**Description**
|
|
Checks if the provided app version is the latest, requires an update, or is optional.
|
|
|
|
**Headers**
|
|
- `Content-Type: application/json`
|
|
- `Accept: application/json`
|
|
|
|
**Request Body**
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| :-------- | :----- | :------- | :----------------------------------------------- |
|
|
| `version` | string | Yes | The current version of the mobile app (e.g., "1.0.0"). |
|
|
| `os` | string | Yes | The operating system. Values: `ios`, `android`. |
|
|
|
|
**Example Request**
|
|
```json
|
|
{
|
|
"version": "1.0.0",
|
|
"os": "ios"
|
|
}
|
|
```
|
|
|
|
**Responses**
|
|
|
|
The API returns a JSON object with an `update` key indicating the status.
|
|
|
|
| Status Value | Meaning | Action Required |
|
|
| :--- | :--- | :--- |
|
|
| `latest` | App is up to date. | None. |
|
|
| `required` | A critical update is available. | **Block user**, redirect to store. |
|
|
| `optional` | A new version is available. | **Notify user**, allow optional update. |
|
|
| `version-not-found` | Version unknown. | None (treat as latest). |
|
|
|
|
**Response Examples**
|
|
|
|
*Latest Version:*
|
|
```json
|
|
{
|
|
"update": "latest"
|
|
}
|
|
```
|
|
|
|
*Required Update:*
|
|
```json
|
|
{
|
|
"update": "required"
|
|
}
|
|
```
|
|
|
|
*Optional Update:*
|
|
```json
|
|
{
|
|
"update": "optional"
|
|
}
|
|
```
|