Nhảy tới nội dung

Cấu Hình Zalo Mini App

File app-config.json được dùng để cấu hình chung cho Zalo Mini App. File này phải được tạo ở thư mục gốc của dự án. Nội dung của file là một JSON object với các properties như sau:

Cấu hình

PropertyTypeRequiredDescriptionMinimum Version
appObjectyesCấu hình giao diện ban đầu của Zalo Mini App
listCSSstring[]Danh sách css cần cho mini app
listSyncJSstring[]Các script trong danh sách này sẽ được tải song song quá trình phân tích trang và thực thi đồng bộ theo thứ tự trong danh sách
listAsyncJSstring[]Các script trong danh sách này sẽ được tải song song quá trình phân tích trang và thực thi bất đồng bộ theo thứ tự tải (Script được tải xong trước sẽ thực thi trước)

App

Cấu hình giao diện ban đầu của Zalo Mini App, bao gồm cấu hình thanh trạng thái, thanh điều hướng,... của ứng dụng.

PropertyTypeRequiredDefault ValueDescriptionMinimum Version
titlestringyesTên của ứng dụng. Đây là trường bắt buộc phải có.
headerTitlestringTên sẽ hiển thị trên thanh điều hướng mặc định của Zalo Mini App
headerColorstringMàu của thanh trạng thái và thanh điều hướng (trường hợp "statusBar": "normal") (Hex code - ví dụ: #ffffff).
leftButtonstringbackCấu hình bộ nút bên trái trên thanh điều hướng mặc định. Nhận 1 trong các giá trị sau:
  • none: không hiển thị
  • back: hiển thị nút trở lại. Nút này sẽ không hiển thị nếu người dùng đang ở trang đầu tiên của ứng dụng
textColorstringMàu chữ và biểu tượng trên thanh điều hướng và thanh trạng thái mặc định. Nhận giá trị hợp lệ là:
  • white: chữ và các biểu tượng sẽ có màu trắng
  • black: chữ và các biểu tượng sẽ có màu đen
statusBarstring'normal'Kiểu hiển thị của thanh trạng thái. Nhận các giá trị:
  • normal: mặc định
  • hidden: ẩn thanh trạng thái
  • transparent: thanh trạng thái sẽ có màu transparent, các biểu tượng vẫn sẽ hiển thị và nằm trên ứng dụng của bạn
API: 2.25.0
Zalo: 23.02.01.r2
actionBarHiddenbooleanfalseẨn thanh điều hướng mặc định của Zalo Mini AppAPI: 2.25.0
Zalo: 23.02.01.r2
hideAndroidBottomNavigationBarbooleanfalseẨn thanh điều hướng bên dưới của các thiết bị Android androidAPI: 2.25.0
Zalo: 23.02.01.r2
hideIOSSafeAreaBottombooleanfalseẨn phần "Safe Area Inset Bottom" (nếu có) trên các thiết bị iOSAPI: 2.25.0
Zalo: 23.02.01.r2
selfControlLoadingbooleanfalseNếu giá trị là true thì màn hình Splash Loading lúc mở ứng dụng sẽ không tự động tắt, thay vào đó nhà phát triển phải gọi api closeLoading để tắt khi cầnAPI: 2.17.0

Ví dụ file app-config.json cấu hình Zalo Mini App:

{
"app": {
"title": "My App",
"headerColor": "#1843EF",
"headerTitle": "Videos",
"textColor": "white",
"leftButton": "back",
"statusBar": "normal",
"actionBarHidden": false,
"hideAndroidBottomNavigationBar": true,
"hideIOSSafeAreaBottom": true
}
}
Mẹo

Để có thể gắn các tương tác đặc biệt trên thanh điều hướng, ta có thể set "actionBarHidden": true để làm trong suốt thanh điều hướng mặc định của Zalo, sau đó custom lại header của ứng dụng cho phù hợp với nhu cầu:

Header mặc định của ZaloHeader tuỳ biến của ứng dụng
Zalo Videos's NavbarMini App Store's Navbar

Zalo Theme

Bắt đầu hỗ trợ:

  • IOS: 22.03.01.r2
  • Android: 21.09.01

Để thay đổi màu của navigation bar, title, status bar icon theo theme của ứng dụng Zalo bạn có thể cấu hình headerColor, textColor như sau:

PropertyTypeDescription
lightstringMàu ứng với theme light
darkstringMàu ứng với theme dark

Lưu ý: nếu phiên bản Zalo chưa hỗ trợ cấu hình theo theme thì giá trị của light sẽ được sử dụng.

Ví dụ file app-config.json cấu hình Zalo Mini App theo theme:

{
...
"app": {
"title": "My App",
"headerColor": {
"light": "#ffffff",
"dark": "#000000"
},
"textColor": {
"light": "black",
"dark": "white"
},
},
...
}

Zalo Language

Bắt đầu hỗ trợ:

  • IOS: 22.03.01.r2
  • Android: 21.09.01

Để thay đổi ngôn ngữ của title theo ngôn ngữ của ứng dụng Zalo bạn có thể cấu hình headerTitle như sau:

PropertyTypeDescription
enstringNgôn ngữ ứng với tiếng Anh
vistringNgôn ngữ ứng với tiếng Việt
mystringNgôn ngữ ứng với tiếng Myanmar (Chỉ hỗ trợ trên android )

Lưu ý: nếu phiên bản Zalo chưa hỗ trợ cấu hình theo ngôn ngữ thì giá trị của vi sẽ được sử dụng.

Ví dụ file app-config.json cấu hình Zalo Mini App theo ngôn ngữ:

{
...
"app": {
"title": "My App",
"headerTitle": {
"en": "My App Title",
"vi": "App Thử Nghiệm"
}
},
...
}