原生 App SDK 模式下自定义 UI
在不同的移动应用中,有不同的设计风格,比如 Title Bar 风格、Button 风格。为了更好地适应您的应用程序的风格,ZOLOZ 支持简单的 UI 自定义,包括指定组件的颜色和副本。
下列的操作步骤说明如何自定义应用在 App SDK 模式下的 ZOLOZ 产品的 UI。
操作步骤
步骤一:通过配置工具配置 UI
- 进入 UI 配置页面,并通过配置工具配置自定义内容。
- 配置完成后,点击 导出 按钮,将配置文件保存到本地。
步骤二:使用配置文件启动 SDK
步骤一 中生成的配置文件与 ZOLOZ SDK 集成。支持 Android 和 iOS 操作系统。下面将演示如何使用 Android 或 iOS 操作系统的配置文件启动 SDK。
说明:如果您不是客户端开发人员,请将配置文件发送给您的客户端开发人员。
将配置文件添加到项目中
将配置文件放入 App 运行时可以访问的项目目录中。一般情况下:
- 如果是 Android App,文件可以添加到 assets 目录中。
- 如果是 iOS App,文件可以添加到 MainBundle 中。
同时,您也可以将配置文件放到 CDN 服务器中,并在启动 ZOLOZ SDK 前下载该配置文件。
在 ZLZRequest 中设置配置文件路径
在使用配置文件启动 ZOLOZ SDK 前,请先在 ZLZRequest 对象中指定配置文件的路径。
- 对于 Android 应用,为CHAMELEON_CONFIG_PATH 参数指定配置文件路径。
- 对于 iOS 应用程序,为 kZLZChameleonConfigKey 参数指定配置文件路径。
以下两个示例分别展示了如何将名为 UIConfig.zip 的配置文件添加到 Android 和 iOS 应用程序的 ZLZRequest 对象中。
示例 1:Android 应用
ZLZRequest request = new ZLZRequest();
request.bizConfig = new HashMap<>();
// Omit other configurations
// add configuration file path to bizConfig.
request.bizConfig.put(ZLZConstants.CHAMELEON_CONFIG_PATH, "UIConfig.zip");
return request;
示例 2:iOS 应用
NSMutableDictionary *bizConfig = [NSMutableDictionary dictionary];
// Omit other configurations
// add configuration file path to bizConfig.
NSString* path = [[NSBundle mainBundle] pathForResource:@"UIConfig" ofType:@"zip"];
[bizConfig setObject:path forKey:kZLZChameleonConfigKey]
ZLZRequest *request = [[ZLZRequest alloc] initWithzlzConfig:clientConfig bizConfig:bizConfig];
关于如何构造 ZLZRequest 对象的更多信息,请参见 Native 接入相关章节。
配置多语言副本(可选)
在 UI 配置页面,您还可以配置多语言副本。要使 ZOLOZ SDK 在启动时能够使用其中一种配置语言的副本,请在 ZLZRequest 对象中指定相关参数的语言信息。然后,ZOLOZ SDK 以指定语言读取副本的配置文件,并将其呈现在您的应用中。
例如,如果您在 UI 配置页面中添加了一种语言 Chinese(Simplified)(zh-CN),并希望 SDK 在您的 Android 应用中使用该语言的副本,则需要指定“zh-CN”的值" 用于 LOCALE 参数,如 示例 3 所示。
如果您开发 iOS 应用,请指定 kZLZLocaleKey 参数的值,如 示例 4 所示。
LOCALE/kZLZLocaleKey 参数的取值必须为 language-Country 格式。 UI 配置页面中提供的各个语言选项的取值方法请参见 语言环境相关的参数值格式。
说明:
- 如果没有配置 LOCALE/kZLZLocaleKey 参数,ZOLOZ SDK 则默认使用系统语言来匹配 UI 配置的语言。
- 如果 LOCALE/kZLZLocaleKey 参数指定的语言和系统语言都与 UI 配置的语言不匹配,则 ZOLOZ SDK 直接使用其内置副本语言。
示例 3:Android 应用
ZLZRequest request = new ZLZRequest();
request.bizConfig = new HashMap<>();
// Omit other configurations
// add LOCALE to bizConfig.
request.bizConfig.put(ZLZConstants.LOCALE, "zh-CN");
return request;
示例 4:iOS 应用
NSMutableDictionary *bizConfig = [NSMutableDictionary dictionary];
// Omit other configurations
// add LOCALE to bizConfig.
[bizConfig setObject:@"zh-CN" forKey:kZLZLocaleKey]
ZLZRequest *request = [[ZLZRequest alloc] initWithzlzConfig:clientConfig bizConfig:bizConfig];