Copyright © 2021-2025 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
이 명세는 Web Application Manifest 및 Web App Manifest - Application Information 명세에서 MiniApp을 설명하기 위해 애플리케이션 매니페스트에 추가 메타데이터를 제공하는 보충 멤버의 레지스트리입니다. 이 JSON 기반 매니페스트 파일을 통해 개발자는 식별 정보, 사람이 읽을 수 있는 설명, 버전 관리 데이터, 스타일링 정보와 같은 MiniApp의 기본 정보를 설정할 수 있습니다. MiniApp 매니페스트는 또한 MiniApp의 일부인 페이지와 위젯의 라우팅을 구성합니다.
이 절은 이 문서가 게시된 시점의 상태를 설명합니다. 현재 W3C 간행물 목록과 이 기술 보고서의 최신 개정판은 W3C 기술 보고서 색인에서 https://www.w3.org/TR/ 주소로 확인할 수 있습니다.
이 문서는 MiniApps 워킹 그룹에서 권고안 트랙을 사용하여 작업 초안으로 게시했습니다.
작업 초안으로 게시되었다고 해서 W3C와 그 회원들의 승인을 의미하지는 않습니다.
이 문서는 초안 문서이며 언제든지 다른 문서로 갱신, 대체 또는 폐기될 수 있습니다. 이 문서를 진행 중인 작업이 아닌 것으로 인용하는 것은 적절하지 않습니다.
이 문서는 W3C 특허 정책에 따라 운영되는 그룹에서 작성했습니다. W3C는 그룹의 산출물과 관련하여 이루어진 모든 특허 공개의 공개 목록을 유지합니다. 해당 페이지에는 특허를 공개하기 위한 지침도 포함되어 있습니다. 개인이 자신이 알고 있는 특허에 필수 청구항이 포함되어 있다고 믿는 실제 지식이 있는 경우, 그 개인은 W3C 특허 정책 제6절에 따라 해당 정보를 공개해야 합니다.
이 문서는 2023년 11월 03일 W3C 프로세스 문서의 적용을 받습니다.
MiniApp 매니페스트는 MiniApp과 관련된 메타데이터를 설명하기 위해 Web App Manifest [APPMANIFEST] 및 Web App Manifest - Application Information [MANIFEST-APP-INFO]을 확장하고 프로파일링하는 [JSON] 문서입니다.
이 명세는 MiniApp을 설명하기 위한 메타데이터 집합을 정의하며, Web Application
Manifest 및 Web App Manifest - Application
Information을 확장하여 MiniApp을 설명하고 설정하기 위한 추가 제약과 특정 메커니즘을 제공합니다.
MiniApp Manifest는 이러한 명세의 필수 요소
(즉, name, short_name, description, 및 icons)를 직접
재사용하고,
MiniApp에 특별히 영향을 주는 보충 멤버(예: app_id,
version, platform_version, device_type, pages,
req_permissions, 및 widgets)와 그 외형과 느낌(예:
color_scheme 및 window)을 추가합니다.
MiniApp 매니페스트는 루트에 다음 멤버를 포함해야(MUST) 합니다.
image
resource 객체는 MiniApp 매니페스트의
멤버 안에서 다음을 포함해야(MUST) 합니다.
icons
MiniApp 매니페스트는 루트에
멤버를 포함할 수(MAY) 있습니다. 이 멤버는 list)인 MiniApp 위젯
리소스의 배열을 포함해야(MUST) 합니다. 각 MiniApp 위젯
리소스 객체는 다음 멤버를
포함해야(MUST) 합니다.
widgets
MiniApp 매니페스트는 루트에
멤버를 포함할 수(MAY) 있습니다. 이 멤버는 list)인 MiniApp
권한 리소스의 배열을 포함해야(MUST) 합니다. 각 MiniApp
권한 리소스 객체는
다음 멤버를 포함해야(MUST) 합니다.
req_permissions
MiniApp 사용자 에이전트는 매니페스트의 공급업체별 확장을 구현하여 선택적 멤버를 지원할 수(MAY) 있습니다.
다음 표는 MiniApp 매니페스트의 멤버 요약을 보여줍니다.
| 멤버 | 타입 | 필수 | 설명 |
|---|---|---|---|
|
string | 예 | MiniApp 식별자 |
|
string | 아니요 | MiniApp 색 구성표 |
|
string | 아니요 | MiniApp 설명 |
|
list | 아니요 | 지원하는 기기 |
|
string | 아니요 | 텍스트의 방향 |
|
image resource list | 예 | MiniApp 아이콘 |
|
string | 아니요 | MiniApp 기본 언어 |
|
string | 예 | MiniApp 이름 |
|
list | 예 | 페이지 라우팅 정보 |
|
platform version resource | 예 | 지원되는 플랫폼 버전 |
|
permission resource list | 아니요 | 요구되는 권한 |
|
string | 아니요 | MiniApp 짧은 이름 |
|
version resource | 예 | MiniApp 버전 |
|
widget resource list | 아니요 | MiniApp 위젯 |
|
window resource | 아니요 | 창 스타일 |
| 멤버 | 타입 | 필수 | 설명 |
|---|---|---|---|
label |
string | 아니요 | 접근 가능한 텍스트 |
sizes |
string | 아니요 | 아이콘의 해상도 크기 |
src |
string | 예 | 아이콘의 소스 |
| 멤버 | 타입 | 필수 | 설명 |
|---|---|---|---|
|
number | 예 | 지원되는 최소 플랫폼 버전 |
|
string | 아니요 | 대상 플랫폼 버전 타입 |
|
string | 아니요 | 대상 플랫폼 버전 코드 |
| 멤버 | 타입 | 필수 | 설명 |
|---|---|---|---|
|
string | 예 | 권한 이름 |
|
string | 아니요 | 권한을 요청하는 이유 |
| 멤버 | 타입 | 필수 | 설명 |
|---|---|---|---|
|
number | 예 | 버전 코드 |
|
string | 예 | 버전 이름 |
| 멤버 | 타입 | 필수 | 설명 |
|---|---|---|---|
|
number | 아니요 | 지원되는 최소 플랫폼 버전 |
|
string | 예 | 위젯 이름 |
path
|
string | 예 | 위젯 경로 |
| 멤버 | 타입 | 필수 | 설명 |
|---|---|---|---|
|
boolean | 아니요 |
페이지의
자동 계산을 활성화/비활성화합니다
|
|
string | 아니요 | 창 배경색 |
|
string | 아니요 | 배경 텍스트 스타일 |
|
number | 아니요 | 기준 페이지 디자인 너비 |
|
boolean | 아니요 | 당겨서 새로고침 이벤트 활성화 |
|
boolean | 아니요 | 전체 화면 표시 |
|
string | 아니요 | 내비게이션 바 배경색 |
|
string | 아니요 | 내비게이션 바의 텍스트 스타일 |
|
string | 아니요 | 내비게이션 바 제목 |
|
string | 아니요 | 내비게이션 바 스타일 |
|
number | 아니요 | 위로 끌어올려 하단 이벤트를 트리거하는 거리 |
|
string | 아니요 | 화면 방향 설정 |
application
manifest의 다른 멤버, 예를 들어 scope,
theme_color, 및
shortcuts는 현재
MiniApp 사용자 에이전트에서 지원되지 않습니다.
이 절은 비규범적입니다.
다음 코드는 MiniApp 매니페스트 예제를 나타냅니다.
{
"dir": "ltr",
"lang": "en-US",
"app_id": "org.example.miniapp",
"name": "MiniApp Demo",
"short_name": "MiniApp",
"version": {
"name": "1.0.1",
"code": 11
},
"description": "A Simple MiniApp Demo",
"icons": [
{
"label": "Red lightning",
"src": "common/icons/icon.png",
"sizes": "48x48"
}
],
"platform_version":{
"min_code": 1,
"release_type": "Beta1",
"target_code": 2
},
"pages": [
"pages/index/index",
"pages/detail/detail"
],
"window": {
"background_color": "#ffffff",
"fullscreen": false,
"navigation_bar_text_style": "black",
"navigation_bar_title_text": "My MiniApp",
"navigation_bar_background_color": "#f8f8f8"
},
"widgets": [
{
"name": "widget",
"min_code": "2",
"path": "widgets/index/index"
}
],
"req_permissions": [
{
"name": "system.permission.LOCATION",
"reason": "To show user's position on the map"
},
{
"name": "system.permission.CAMERA",
"reason": "To scan a QR code"
}
],
"color_scheme": "light",
"device_type": [
"phone",
"tv",
"car"
]
}
MiniApp 매니페스트는 다음 필수 application manifest 멤버를 사용합니다.
MiniApp 매니페스트의
dir
멤버는 지역화 가능 멤버의 기본 방향을 지정하면서, 동시에
전체 MiniApp의 기본 텍스트 방향도 지정합니다.
멤버의 값은 [APPMANIFEST]에 지정된
text-directions 중 하나로
설정할 수 있습니다. 텍스트 방향 값은 다음과 같습니다.
dir
ltr"
rtl"
auto"
(기본값)
MiniApp
매니페스트를 처리할 때, [APPMANIFEST] 명세에 따라
dir 멤버 처리 알고리즘이
dir 멤버를 처리하는 데 사용됩니다.
MiniApp 매니페스트의
icons
멤버는 MiniApp의 아이콘 표현으로 사용되는 이미지를 설명합니다. 이 멤버는 list인 image
resource ordered
map입니다.
[IMAGE-RESOURCE]에 지정된 것처럼, image resource는 다음으로 구성됩니다.
label
sizes
link의
sizes
속성과 동일한 구문을 사용해 표현된 이미지 크기를 나타내는 선택적 string.
src
MiniApp
매니페스트를 처리할 때, [APPMANIFEST] 명세에 따라
image resources 처리 알고리즘이
icons 멤버를 처리하는 데 사용됩니다.
개발자는 image
resource의 접근 가능한 이름을 문맥의 외부 레이블에서 유추할 수 있는 경우가 아니라면
label을 추가하는 것이 강하게 권장됩니다.
MiniApp 매니페스트의
lang
멤버는 지역화 가능 멤버의 기본 언어를 지정하면서, 동시에
전체 MiniApp의 기본 언어도 지정합니다. 이 멤버는 [APPMANIFEST]에 정의된 대로,
[BCP47]의
Language-Tag 생성식과 일치하는 문자열인 language
tag 형식의 string입니다.
MiniApp
매니페스트를 처리할 때, [APPMANIFEST] 명세에 따라
lang 멤버 처리 알고리즘이
lang 멤버를 처리하는 데 사용됩니다.
MiniApp 매니페스트의 name
멤버는 애플리케이션의 설명적 이름입니다.
이는 사용자에게 직접 표시되는 이름입니다. 데스크톱 아이콘과 함께 MiniApp의 표시 이름으로 사용되며,
MiniApp 관리 맥락에서도 사용됩니다.
MiniApp
매니페스트를 처리할 때, [APPMANIFEST] 명세에 따라
text
member 처리 알고리즘이
name 멤버를 처리하는 데 사용됩니다.
MiniApp 매니페스트의
short_name
멤버는 MiniApp에 대해 간결하고 읽기 쉬운 이름을 제공합니다.
에
제공된
전체 MiniApp 이름을 표시할 공간이 부족할 때 사용할 수 있습니다.
name
MiniApp
매니페스트를 처리할 때, [APPMANIFEST] 명세에 따라
text
member 처리 알고리즘이
short_name 멤버를 처리하는 데 사용됩니다.
다음 멤버는 Web App Manifest - Application Information 명세 [MANIFEST-APP-INFO]에 정의되어 있습니다.
MiniApp 매니페스트의
description
멤버는 [MANIFEST-APP-INFO]에 정의된 대로,
웹 애플리케이션의 목적을 자연어로 나타내는 MiniApp의 텍스트 설명을 제공합니다.
ordered map json 및 ordered map manifest가 주어졌을 때
description 멤버를 처리하려면:
다음 멤버는 MiniApp 매니페스트의 범위 아래에서 정의되며, MiniApp의 특정 측면을 다룹니다.
MiniApp 매니페스트의
app_id
멤버는 MiniApp을 고유하게 식별하는 string입니다.
이 멤버는 주로 패키지 관리에 사용되며, MiniApp 버전 관리의 업데이트 및 릴리스 프로세스를 지원합니다.
값은 대소문자를 구분하며 Unicode에서 문자를 인코딩하는 서로 다른 방식에도 민감합니다.
따라서 두
app_id
값은 같은 code
point 시퀀스로 인코딩된 경우에만 동일합니다.
app_id
MiniApp의 일반적인 관행 중 하나는 Java
package naming convention에서 사용하는 역도메인 이름과 유사한 규칙(예:
org.example.miniapp)을 다음 규칙 아래에서 사용하는 것입니다.
appIdRule = name *("." name)
name = ALPHA [*( ALPHA / DIGIT / "-" ) ( ALPHA / DIGIT)]
ordered map json 및 ordered map manifest가 주어졌을 때
app_id 멤버를 처리하려면:
선택적 MiniApp 매니페스트의
color_scheme
멤버는 MiniApp의 선호 색 구성표(즉, "", "auto, 또는 "light")를 나타내는
string으로,
window resource 객체의 다른 구성 멤버를 재정의합니다. 여기에는
dark,
background_color,
background_text_style,
및
navigation_bar_text_style가
포함됩니다.
navigation_bar_title_text
이 멤버는 다음 색 구성표 값 중 하나를 포함해야(MUST) 합니다.
auto"light"dark"MiniApp 사용자 에이전트는 각 색 구성표에 대해 배경색, 표지 이미지, 아이콘과 같은 미리 정의된 스타일링 리소스를 구현할 수(MAY) 있습니다. 또한 개발자는 prefers-color-scheme CSS 미디어 기능 [MEDIAQUERIES-5]을 사용하여 각 모드에 대해 사용자 지정 스타일시트를 정의할 수(MAY) 있습니다.
ordered map json 및 ordered map manifest가 주어졌을 때
color_scheme 멤버를 처리하려면:
선택적 MiniApp 매니페스트의
device_type
멤버는 MiniApp이 실행되도록 의도된 기기 유형을 나타내는 string들의
list입니다. 이 멤버의 값은
MiniApp이 스마트폰, 스마트 TV, 차량 헤드 유닛, 웨어러블 및 기타 기기와 같은 특정 플랫폼에서 제대로
실행되도록 설계되었는지 사용자 에이전트에 알려줍니다.
이 멤버는 초기화 프로세스 동안 기기 호환성 검증에 사용됩니다. 사용자 에이전트는 그 값을 확인하여 UI 컴포넌트, CSS 지원 및 API의 호환성 측면에서 MiniApp이 해당 플랫폼에서 실행하기에 적합한지 결정합니다. MiniApp 사용자 에이전트는 검증 프로세스가 실패할 경우 플랫폼의 동작을 어떻게 구현할지 결정합니다(예: 초기화 단계를 중지하고 설치를 거부하거나, MiniApp을 설치하지만 실행을 거부함).
이 문서는 멤버의 가능한 값 목록을 지정하지 않으므로, 구현의 유연성을 제공하고 모든 기기와
사용 사례를 고려할 수 있습니다. 일반적인 값의 일부는 smartphone,
tablet, tv, car,
wearable, 및 iot입니다.
ordered map json 및 ordered map manifest가 주어졌을 때
device_type 멤버를 처리하려면:
MiniApp 매니페스트의
pages
멤버는 MiniApp의 일부인 페이지 모음을 지정하는 데 사용되는 relative-url
string의 list입니다.
list의 각 항목은
페이지 라우트로 식별되는 페이지를 나타냅니다.
MiniApp 페이지 라우트는 MiniApp 페이지의 상대 경로 및 파일 이름입니다. 페이지 라우트를 구성할 때, 개발자는 페이지의 주요 컴포넌트를 정의하는 파일의 확장자를 생략할 수(MAY) 있습니다(예: pages/mypage 또는 pages/mypage.html).
list의 첫 번째 항목은
MiniApp의 홈페이지 또는 진입점을 정의합니다.
pages
ordered map json 및 ordered map manifest가 주어졌을 때
pages 멤버를 처리하려면:
MiniApp 매니페스트의
platform_version
멤버는
,
min_code,
및
target_code를
포함하여,
MiniApp을 실행하기 위한 최소 요구 사항과 의도된 플랫폼 버전을 설명하는
MiniApp platform version
resource ordered
map을 포함합니다.
release_type
ordered map json 및 ordered map manifest가 주어졌을 때
platform_version 멤버를 처리하려면:
min_code 멤버를 처리합니다.target_code 멤버를 처리합니다.release_type 멤버를 처리합니다.
선택적 MiniApp 매니페스트의
req_permissions
멤버는 MiniApp permission resources ordered map의
list입니다.
각 MiniApp 권한 리소스는 MiniApp의 정상적인 실행에 필요한 구체적인 시스템 기능(예: 기기의 위치, 사용자 연락처, 센서 및 카메라 접근)을 사용하기 위한 요청을 선언합니다.
ordered map json 및 ordered map manifest가 주어졌을 때
req_permissions 멤버를 처리하려면:
name 멤버를 처리합니다.reason 멤버를 처리합니다.
사용자 에이전트는 이러한 특정 기능에 접근하는 동안 사용자의 개인정보를 보호하기 위해 사용자의 동의를 요청합니다.
멤버의 이 정보는 앱 스토어 또는 호스팅 플랫폼이 사용자의 선호, 개인정보 처리방침 또는 기기 기능에 따라
MiniApp을 필터링하는 데 사용할 수 있습니다.
req_permissions
MiniApp 매니페스트의
version
멤버는
및
code을
나타내기 위한 MiniApp version resource ordered map을
포함합니다.
name
ordered map json 및 ordered map manifest가 주어졌을 때
version 멤버를 처리하려면:
code
멤버를 처리합니다.name
멤버를 처리합니다.
선택적 MiniApp 매니페스트의
widgets
멤버는 MiniApp의 일부인 MiniApp widget resources의 list입니다.
MiniApp Package는 MiniApp 페이지와 위젯을 동시에 포함할 수(MAY) 있습니다.
MiniApp의 일부인 위젯은 다음을 포함한 MiniApp 매니페스트의 일부 멤버를 적용합니다.
그러나 위젯에는 MiniApp widget resource에 정의된 고유 필드도 있습니다.
ordered map json 및 ordered map manifest가 주어졌을 때
widgets 멤버를 처리하려면:
name 멤버를 처리합니다.
path 멤버를 처리합니다.
min_code 멤버를 처리합니다.
선택적 MiniApp 매니페스트의
window
멤버는 상태 표시줄, 내비게이션 바, 제목, 배경색 및 기타 시각 구성 요소의 스타일을 포함하여
MiniApp 프레임의 외형과 느낌을 설명하는 MiniApp window resource ordered map을
포함합니다.
객체 멤버는 MiniApp 매니페스트의 루트에 있는
window
및
dir
멤버에서 텍스트 방향과 언어 구성을 상속합니다.
lang
ordered map json 및 ordered map manifest가 주어졌을 때
window 멤버를 처리하려면:
auto_design_width 멤버를 처리합니다.
background_text_style 멤버를 처리합니다.
design_width 멤버를 처리합니다
enable_pull_down_refresh 멤버를 처리합니다.
fullscreen 멤버를 처리합니다.navigation_bar_text_style 멤버를 처리합니다.
navigation_bar_title_text 멤버를 처리합니다.
navigation_style 멤버를 처리합니다.
on_reach_bottom_distance 멤버를 처리합니다.
orientation 멤버를 처리합니다.
auto_design_width 멤버를 처리합니다.
MiniApp 매니페스트는 Application manifest의 확장으로서, [APPMANIFEST]에 정의된 manifest 처리 알고리즘의 확장 지점에서 처리될 보충 알고리즘을 제공합니다. 따라서 사용자 에이전트는 Application manifest의 멤버를 처리하는 것으로 시작하고, 확장 지점에서 다음 알고리즘을 사용하여 MiniApp 매니페스트 멤버 처리를 계속합니다.
ordered map json 및 ordered map manifest가 주어졌을 때, 확장 지점에서 MiniApp 매니페스트를 처리하려면:
TypeError합니다.
TypeError합니다.
TypeError합니다.
TypeError합니다.
app_id 멤버를 처리합니다.
TypeError합니다.
color_scheme
멤버를 처리합니다.description
멤버를 처리합니다.device_type
멤버를 처리합니다.pages 멤버를 처리합니다.
TypeError합니다.
platform_version
멤버를 처리합니다.TypeError합니다.
req_permissions
멤버를 처리합니다.version 멤버를 처리합니다.
TypeError합니다.
widgets 멤버를 처리합니다.
window 멤버를 처리합니다.
MiniApp 플랫폼 버전 리소스는 MiniApp이 사용할 최소 및 대상 플랫폼 버전을 나타내는 ordered map입니다.
다음 멤버들은 MiniApp 매니페스트의 범위 아래에서 정의되며, 플랫폼 버전 리소스의 특정 측면을 다룹니다.
MiniApp 플랫폼 버전 리소스의
min_code
멤버는 MiniApp의 정상 작동을 보장하기 위해 MiniApp 사용자
에이전트 플랫폼의 최소 지원 버전을 나타내는 음이 아닌 정수입니다.
ordered map json 및 ordered map platform_version이 주어졌을 때,
플랫폼 버전의 min_code 멤버를 처리하려면:
MiniApp 플랫폼 버전 리소스의
release_type
멤버는 애플리케이션 실행에 필요한 MiniApp 사용자 에이전트의 대상 플랫폼 버전의
릴리스 타입을 나타내는 string입니다.
MiniApp 공급업체는 이 멤버에 대해 특정 버전 관리 체계와 값(예:
CanaryN, BetaN, 또는 Release, 여기서 N은
Beta1 같은 양의 정수를 나타냄)을 권장할 수 있습니다.
ordered map json 및 ordered map platform_version이 주어졌을 때,
플랫폼 버전의 release_type 멤버를 처리하려면:
MiniApp 플랫폼 버전 리소스의
target_code
멤버는 MiniApp의 정상 작동을 보장하기 위해 MiniApp 사용자
에이전트 플랫폼의 대상 지원 버전을 나타내는 음이 아닌 정수입니다.
ordered map json 및 ordered map platform_version이 주어졌을 때,
플랫폼 버전의 target_code 멤버를 처리하려면:
MiniApp 권한 리소스는 MiniApp의 정상적인 실행에 필요한 구체적인 시스템 기능(예: 기기의 위치, 사용자 연락처, 센서 및 카메라 접근)을 사용하기 위한 요청을 설명하는 ordered map입니다.
다음 멤버들은 MiniApp 매니페스트의 범위 아래에서 정의되며, 권한 리소스의 특정 측면을 다룹니다.
MiniApp 권한 리소스의
name
멤버는 요청된 기능의 이름을 나타내는 string입니다.
ordered map json 및 ordered map permission이 주어졌을 때,
권한 리소스의 name 멤버를 처리하려면:
선택적 MiniApp 권한 리소스의
reason
멤버는
[MiniApp permission resource/name=] 속성에 지정된 기능을 요청하기 위해 제시된 이유를
나타내는 string입니다.
ordered map json 및 ordered map permission이 주어졌을 때,
권한 리소스의 reason 멤버를 처리하려면:
MiniApp 버전 리소스는 MiniApp의 버전 코드와 버전 이름을 설명하는 ordered map입니다.
다음 멤버들은 MiniApp 매니페스트의 범위 아래에서 정의되며, 버전 리소스의 특정 측면을 다룹니다.
MiniApp 버전 리소스의
code
멤버는 MiniApp의 버전을 나타내는 음이 아닌 정수입니다. 이는 주로
MiniApp의 유지 관리성과 보안을 향상하는 데 사용됩니다(예: 증분 버전 간 호환성).
code
멤버는 개발 및 배포 프로세스를 지원하는 것을 목표로 하며, 일반적으로 최종 사용자에게 표시되지 않습니다.
ordered map json 및 ordered map version이 주어졌을 때,
버전의 code 멤버를 처리하려면:
MiniApp 버전 리소스의 name 멤버는
MiniApp의 버전에 대한 정보를 설명하는 데 주로 사용되는
string이며, 버전 제어, MiniApp 애플리케이션
및
플랫폼 호환성에서 필수적인 역할을 합니다. 일반적으로 공개적으로 표시되고 사용자에게 표시되는
버전으로 간주됩니다.
이 멤버의 권장(RECOMMENDED) 형식은 X.Y.Z이며,
여기서 X, Y, 및 Z는 Semantic Versioning
[SEMANTIC-VERSIONING]에 지정된 것처럼
음이 아닌 정수 값입니다(예:
1.10.0).
ordered map json 및 ordered map version이 주어졌을 때,
버전의 name 멤버를 처리하려면:
MiniApp 위젯 리소스는 MiniApp의 일부인 위젯을 정의하고 구성하는 ordered map입니다.
다음 멤버들은 MiniApp 매니페스트의 범위 아래에서 정의되며, 위젯 리소스의 특정 측면을 다룹니다.
MiniApp 위젯 리소스의
name
멤버는 위젯의 제목을 나타내는 string입니다.
ordered map json 및 ordered map widget이 주어졌을 때,
위젯의 name 멤버를 처리하려면:
MiniApp 위젯 리소스의 path 멤버는 위젯의 대응하는
페이지 라우트를 정의하는 relative-url string이며,
list에서와 같이 표현됩니다.
pages
ordered map json 및 ordered map widget이 주어졌을 때,
위젯의 path 멤버를 처리하려면:
선택적 MiniApp 위젯 리소스의
min_code
멤버는 MiniApp 위젯에
대해 지원되는
최소 플랫폼 버전을 나타내는 number입니다.
Widget API와 MiniApp API가 다를 수 있으므로, 플랫폼의 최소 버전 선언도 다를 수 있습니다.
따라서 widgets 멤버가
를 명시적으로 생략하면, 사용자 에이전트는
min_code
객체의
platform_version
멤버에 지정된 것과 동일한 요구 사항으로 간주합니다.
min_code
ordered map json, ordered map widget 및 ordered map manifest가 주어졌을 때,
위젯의 min_code 멤버를 처리하려면:
MiniApp window 리소스는 MiniApp을 포함하는 창을 정의하고 구성하는 ordered map입니다.
다음 멤버들은 MiniApp 매니페스트의 범위 아래에서 정의되며, MiniApp window 리소스의 설명을 가능하게 합니다.
auto_design_width
멤버는 페이지의
가 사용자 에이전트에 의해 자동 계산되는지를 나타내는
boolean입니다.
design_width
가 auto_design_widthtrue이면,
의 값은 무시됩니다. 이 경우 시스템의 기준 너비는 화면의 픽셀 밀도에 따라
자동으로 결정됩니다.
design_width
기본값: false.
ordered map json 및 ordered map window가 주어졌을 때,
window의 auto_design_width 멤버를 처리하려면:
background_color 멤버는 MiniApp을
포함하는 창의 배경색을 지정하는 string입니다.
이 멤버는 sRGB 색상을 지원하며,
application manifest의 background_color와 동일합니다.
기본값: "#ffffff".
MiniApp
매니페스트를 처리할 때, [APPMANIFEST] 명세에 따라
color
member 처리 알고리즘이 window의
background_color 멤버를 처리하는 데 사용됩니다.
background_text_style
멤버는 밝은 색 테마 또는 어두운 색 테마(즉, "" 또는 "light")를 나타내는
배경 텍스트 스타일을 지정하는 string입니다.
dark
이 멤버는 prefers-color-scheme 값을 지원하며, 다음 background text style 값 중 하나를 포함해야(MUST) 합니다.
light"
dark"
(기본값)
ordered map json 및 ordered map window가 주어졌을 때,
window의 background_text_style 멤버를 처리하려면:
design_width
멤버는 pixel unit
단위에서
페이지 디자인의 기준 너비를 나타내는 number입니다. 이는 페이지 컴포넌트를 시각적으로 조정하는 데 사용됩니다.
값은 음이 아닌 정수이며 기본값은 750입니다.
ordered map json 및 ordered map window가 주어졌을 때,
window의 design_width 멤버를 처리하려면:
enable_pull_down_refresh
멤버는 MiniApp과의 상호작용 중에 pull-to-refresh 이벤트가 활성화되는지를 지정하는
boolean입니다.
기본값: false.
ordered map json 및 ordered map window가 주어졌을 때,
window의
enable_pull_down_refresh 멤버를 처리하려면:
fullscreen
멤버는 MiniApp이 전체 화면 표시 모드로 표시되는지를 나타내는 boolean입니다.
이 멤버가 true 값을 가지면, 이는 application manifest의
값이
fullscreendisplay
멤버에 있는 것과 같습니다. 값이 false이면
minimal-ui와
같습니다.
기본값: false.
ordered map json 및 ordered map window가 주어졌을 때,
window의 fullscreen 멤버를 처리하려면:
on_reach_bottom_distance
멤버는 페이지 pull-up 이벤트를 트리거하기 위해 필요한, 창 하단으로부터의 수직 오프셋을 정의하는
number입니다. 이 멤버의 값은 pixel unit으로
표현되는 음이 아닌 정수입니다.
기본값: 50.
ordered map json 및 ordered map window가 주어졌을 때,
window의
on_reach_bottom_distance 멤버를 처리하려면:
orientation
멤버는 MiniApp의 화면 방향 구성을 지정하는 string입니다.
이 멤버는 OrientationLockType
[SCREEN-ORIENTATION]에 정의된
orientation
값: "portrait" 및 "landscape"를
지원합니다.
이 멤버는 application manifest의
와
동일합니다.
orientation
기본값: "portrait".
ordered map json 및 ordered map window가 주어졌을 때,
window의 orientation 멤버를 처리하려면:
지역화 가능 멤버는 특정
언어적, 지리적, 문화적 측면에 맞게 조정될 수 있는 내용을 가진 매니페스트 멤버입니다. 이러한 지역화 가능 멤버는 매니페스트 루트에 정의된
language tag
()
및 표시 방향
(lang)
을 공유합니다.
dir
다음 멤버들은 지역화 가능 멤버입니다.
MiniApp Package의 중요한
부분으로서,
manifest.json 파일은 pages 디렉터리의 페이지 스크립트 및 시각 구성 파일,
common 디렉터리의 이미지 같은 서로 다른 파일 타입의
MiniApp Package
리소스를 참조하여 MiniApp의 여러 중요한 측면을 설명합니다. 자세한 내용은
[MINIAPP-PACKAGING]에 지정되어 있습니다.
MiniApp의 정상 작동은 매니페스트의 적절한 구성과 MiniApp Package 리소스의 가용성에 의존합니다. 이러한 의존성은 개발 단계와 배포 단계 모두에서 확인되어야 합니다.
이 절은 비규범적입니다.
이 문서는 개발자와 게시자가 MiniApp의 동작과 외형을 설명하고 구성할 수 있도록 하는
메타데이터 집합을 지정합니다. color_scheme 및
window 리소스 멤버 같은 일부 매니페스트 속성은 사용자 에이전트가
사용자와 MiniApp 간의 상호작용을 가능하게 하는 사용자 지정 사용자 인터페이스를 생성하도록 하는 것을 목표로 합니다.
멤버는 개발자가 플랫폼 및 운영 체제에서 MiniApp의 시각적이고 아이콘적인 표현을 설명할 수 있게 합니다.
여기서 플랫폼은 이미지 표현을 위해 플랫폼 접근성 서비스와 적절히 통신해야 하며,
접근성을 향상하기 위해 대체 텍스트 설명(예:
icons의
iconlabel,
및
name)
도 사용해야 합니다(즉, 기기의 홈 화면 아이콘, 앱 디렉터리의 목록, 앱 구성).
short_name
사용자 에이전트는 사용자 인터페이스가 인지 가능하고 조작 가능하도록 보장해야 하므로,
색 구성표와 테마 설정(즉,
,
color_scheme,
background_color,
background_text_style,
navigation_bar_background_color,
navigation_bar_background_color,
및
navigation_bar_text_style)
같이 사용자 에이전트 인터페이스와 렌더링된 콘텐츠에 영향을 미치는 멤버를 처리할 때,
그리고
navigation_style,
orientation,
fullscreen,
및
enable_pull_down_refresh
같은 기타 구성 설정을 처리할 때 특별히 고려해야 합니다.
on_reach_bottom_distance
매니페스트의 멤버는 MiniApp의 외형을 정의하며,
내비게이션 바의 look and feel 및 window 또는 fullscreen처럼 사용자 에이전트의
네이티브 UI를 수정하는 기타 기능을 포함합니다. 사용자 에이전트는 앱을 닫고 네이티브 UI에 영향을 준 변경 사항을
되돌릴 수 있는 직관적인 메커니즘을 제공해야 합니다.
orientation
이 매니페스트를 해석하는 사용자 에이전트는 사용자가 창과 뷰포트 내에서 방향을 파악하고 제어할 수 있도록 도와야 합니다.
또한 device_type 멤버의 고급 사용과 공급업체별 멤버로 매니페스트를 확장하는 방식을 통해
다양한 사용 시나리오를 다루는 대체 보기를 제공하여 접근성을 향상해야 합니다. 따라서 MiniApp 사용자 에이전트와
플랫폼은 사용자 스타일시트와 테마를 구성하고 애플리케이션의 표시 및 상호작용을 사용자 지정하는 메커니즘을 제공해야 하며,
적용 가능한 명세와 관례, 특히 User Agent
Accessibility Guidelines (UAAG) 2.0을 준수해야 합니다.
매니페스트 데이터는 플랫폼이 애플리케이션을 적절하게 구성하고 처리하는 데 도움을 줍니다. 문서가 노출하는 정보는 공개되어 있으므로, 제3자 에이전트(예: 앱 마켓플레이스와 저장소)는 매니페스트 정보를 사용하여 앱 버전을 유지 관리하고, 분류하고, 목록화할 수 있습니다.
매니페스트는 JSON 문서이며 일반적으로 [UNICODE]를 사용하여 인코딩되므로, [JSON] 및 [UNICODE-SECURITY]에 설명된 보안 고려 사항이 적용됩니다. 개발자가 매니페스트에 사용자 지정/제한 없는 데이터를 포함하는 것을 방지하기 위해, 구현자는 JSON Schema에 정의된 것보다 더 엄격한 스키마를 사용하여 멤버 이름, 타입, 값 범위에 대한 구현별 제한을 부과할 수 있습니다(예: 메모리 오버플로를 방지하거나 플랫폼별 제한을 충족하기 위해).
매니페스트를 포함한 MiniApp 리소스의 무결성은 전체 MiniApp Package의 일부로서 암호화 해시 메커니즘에 의해 보호되며, 자세한 내용은 [MINIAPP-PACKAGING]에 설명되어 있습니다.
MiniApp은 디렉터리로 구성된 서로 다른 파일 리소스를
컨테이너 안에 포함합니다.
, icons, 및 pages 같은 매니페스트 멤버는
호스팅 플랫폼의 로컬 리소스를 참조하는 경로를 포함합니다. MiniApp 사용자 에이전트는 샌드박스 환경을
보장해야(MUST) 하며, 이러한 경로의 유효성을 확인하여 MiniApp
패키지 밖으로의
불법 접근을 방지해야 합니다.
widgets
개발자는 호스팅 플랫폼의 외부 MiniApp 데이터 리소스(즉, 메인 패키지에 포함되지 않은 리소스, 예: 다른 애플리케이션으로의 딥 링크 및 공유 스토리지) 또는 원격 HTTP 서버에 접근할 수 있습니다. 전자의 경우 MiniApp 사용자 에이전트는 플랫폼에서 샌드박스 환경을 보장하는 데 필요한 모든 메커니즘을 구현해야 합니다.
멤버는 MiniApp 컨테이너 안에 저장된
리소스를 참조하는 상대 경로가 있는 페이지 맵을 포함하여 MiniApp의 컴포넌트 라우트를 정의합니다.
사용자 에이전트는 MiniApp 컨테이너 안의 유효한 리소스에 해당하지 않는 외부 URL이나 경로를
무시해야(MUST) 합니다.
pages
매니페스트는 MiniApp의 동작 중 요청될 수 있는 기능을 지정하며, 여기에는 네트워크 연결 및 기기와의 직접 연결(예: Bluetooth, NFC 또는 USB)을 통한 센서 접근과 다른 기기와의 통신이 포함됩니다. 선언은 해당 기능에 대한 접근 및 사용을 의미하지 않습니다. 그러나 사용자 에이전트는 서비스와 API의 올바른 사용을 보장하고 각 구체적 기능의 잠재적 취약점을 해결하는 메커니즘을 구현해야(MUST) 합니다.
이 명세는 민감한 데이터를 직접 다루지 않습니다. 그러나 MiniApp 매니페스트에 정의된 정보는 플랫폼이 개인정보 보호에 영향을 줄 수 있는 다른 기기의 하드웨어, 소프트웨어 및 데이터 리소스를 MiniApp이 관리하도록 하기 위한 개인정보 보호 정책을 구성하는 데 도움을 줍니다.
MiniApp 매니페스트는 개인정보의 수집, 사용 또는 공개를 유도하지 않습니다. 그러나 MiniApp 사용자 에이전트는 지문 식별에 기여할 수 있는 민감한 기기 서비스와 기능에 대한 접근을 제어해야(MUST) 합니다. 권한 관리에서 나타나는 사용자의 행동 패턴은 기기의 특정 제약(즉, 자동차, IoT 및 SmartTV용 MiniApp)과 함께 사용자가 지문 식별될 수 있게 할 수 있습니다. 이러한 이유로 MiniApp 사용자 에이전트는 기기 리소스에 대한 접근을 제어하고 샌드박스 환경을 유지해야(MUST) 하며, 기기 센서, 외부 소프트웨어, 개인정보와 같은 민감한 리소스에 대한 접근을 보호하고 사용자의 선호가 공개되지 않도록 해야 합니다.
매니페스트의 멤버를 통해 개발자는
powerful
features에 접근하기 위한
MiniApp의 요구 사항을 선언합니다. 이 멤버를 통해 플랫폼은 MiniApp이 요청할 수 있는 제한된 리소스
(req_permissions
멤버)를 이해하고, 사용자에게 잠재적 결과를 알리며, 이러한 리소스에 대한 접근을 허용하거나
계속 차단할 수 있습니다. 개발자는 이러한 고급 리소스를 요청하는 명확하고 이해하기 쉬운 근거를
제시하기 위해 name
멤버를 사용하는 것이 좋습니다(SHOULD).
reason
사용자 에이전트는 사용자가 powerful features(예: 지리위치 및 기기 센서)를 사용하기 위해 부여해야 하는 명시적 권한을 포함하여 사용자의 선호를 관리해야(MUST) 합니다. 사용자 에이전트는 세션 간에 이러한 사용자 선호를 기억하는 메커니즘을 구현해야(MUST) 하며, 사용자가 언제든지 권한을 철회하고 부여할 수 있게 해야 합니다. 매니페스트와 관련된 다른 정보는 세션 간에 지속될 필요가 없습니다.
웹 애플리케이션과 마찬가지로, MiniApp은 UI 대화 상자를 사용해 설치될 수 있습니다. 설치 과정에서 사용자
에이전트는 앱에 대한 명확한 정보(즉,
,
app_id,
name,
short_name,
icons)를
표시하는 것이 좋습니다(SHOULD).
이러한 투명한 정보는 최종 사용자가 설치 전에 의식적인 결정을 내릴 수 있게 합니다. 이 메타데이터를 기반으로
사용자 에이전트는 MiniApp
Packaging에 정의된 것처럼 패키지 내의 digital signature 방법을 사용하여 앱의 무결성을 검증하고 사용자의 신뢰를
최대화할 수 있습니다(MAY).
description
사용자 에이전트는 설치된 MiniApp을 제거하는 메커니즘을 제공하는 것이 좋습니다(SHOULD). 제거 시점에는 사용자 에이전트가 권한 및 영구 저장소와 같이 애플리케이션과 관련된 다른 영구 데이터와 설정을 철회할 기회도 사용자에게 제공하는 것이 권장됩니다(RECOMMENDED).
비규범으로 표시된 절뿐만 아니라, 이 명세의 모든 작성 지침, 도표, 예제 및 참고는 비규범적입니다. 이 명세의 그 밖의 모든 내용은 규범적입니다.
이 문서의 핵심 단어 MAY, MUST, RECOMMENDED, 및 SHOULD는 여기에 표시된 것처럼 모두 대문자로 나타날 때에만 BCP 14 [RFC2119] [RFC8174]에 설명된 대로 해석됩니다.
이 명세는 [RFC5234]에 정의된 Augmented Backus-Naur Form (ABNF)을 사용합니다.
MiniApp Manifest 명세는 알고리즘을 설명하기 위해 Infra Standard [INFRA]에 의존합니다.
MiniApp 매니페스트 문서의 유효성을 검사하려는 개발자는 https://w3c.github.io/miniapp-manifest/manifest_schema.json에 정의된 JSON Schema를 사용할 수 있습니다.
이 절은 비규범적입니다.
이 절은 비규범적입니다.
이 명세는 application manifest 확장성 원칙을 기반으로 합니다.
독점 확장은 바람직하지 않지만, 매니페스트 확장으로 포함될 수 있습니다. 이 경우 새 멤버에는 공급업체 접두사를 사용하는 것이 권장됩니다(RECOMMENDED).
구현자는 독점 확장을 Extensions Registry에 추가하는 것이 권장됩니다. 이를 통해 커뮤니티는 공급업체 및/또는 웹 커뮤니티가 정의하고 문서화한 확장을 추적할 수 있습니다.
Web App Manifest는 공급업체 접두사를 사용하여 새로운 독점 매니페스트 멤버를 추가할 수 있게 합니다: https://www.w3.org/TR/appmanifest/#proprietary-extensions
아마도 유사한 것이 필요할 것입니다.
다음은 세 가지 가상의 공급업체 확장 예제입니다.
{
...
"wechat_new_feature": "foo",
"ali_new_url_system": "http://example.org",
"coolminiapp_menu_color": "#FA0000"
...
}
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in: