 | |  |  |
AIWROK配置读写功能演示示例
- // AIWROK软件安卓交流QQ群711841924
- // 苹果内测软件QQ群648461709
- // AIWROK配置读写功能完整演示示例
- // 本示例集成了所有配置读写相关功能,包含getConfig和setConfig的详细使用方法
- // 注意:此代码需在AIWROK环境中运行,因为config对象由AIWROK提供
- /**
- * 配置文件路径常量
- * 在实际应用中,根据不同平台和需求设置合适的路径
- */
- var CONFIG_FILE_PATH = '/sdcard/aiwrok_config.ini';
- /**
- * 配置读写演示主函数
- */
- function configDemo() {
- printl('===== AIWROK配置读写功能演示 =====');
-
- // 步骤1:演示写入配置
- demonstrateSetConfig();
-
- // 步骤2:演示读取配置
- demonstrateGetConfig();
-
- // 步骤3:演示默认值的使用
- demonstrateDefaultValue();
-
- // 步骤4:演示配置修改和更新
- demonstrateUpdateConfig();
-
- // 步骤5:演示实际应用场景
- demonstrateRealWorldScenario();
-
- printl('\n===== 演示完成 =====');
- }
- /**
- * 演示setConfig方法的使用
- */
- function demonstrateSetConfig() {
- printl('\n1. 演示写入配置(setConfig):');
-
- // 参数说明:
- // arg0: 配置文件路径
- // arg1: 配置项名称
- // arg2: 配置项的值
-
- try {
- // 写入用户配置
- config.setConfig(CONFIG_FILE_PATH, 'username', 'testuser');
- printl(' - 已写入用户名配置');
-
- // 写入应用主题配置
- config.setConfig(CONFIG_FILE_PATH, 'theme', 'dark');
- printl(' - 已写入主题配置');
-
- // 写入字体大小配置
- config.setConfig(CONFIG_FILE_PATH, 'font_size', '16');
- printl(' - 已写入字体大小配置');
-
- // 写入布尔类型配置(以字符串形式存储)
- config.setConfig(CONFIG_FILE_PATH, 'auto_start', 'true');
- printl(' - 已写入自动启动配置');
- } catch (e) {
- printl(' - 写入配置时出错: ' + e.message);
- }
- }
- /**
- * 演示getConfig方法的使用
- */
- function demonstrateGetConfig() {
- printl('\n2. 演示读取配置(getConfig):');
-
- // 参数说明:
- // arg0: 配置文件路径
- // arg1: 配置项名称
- // arg2: 当配置不存在时的默认值
-
- try {
- // 读取用户名配置
- var username = config.getConfig(CONFIG_FILE_PATH, 'username', 'default_user');
- printl(' - 用户名配置: ' + username);
-
- // 读取主题配置
- var theme = config.getConfig(CONFIG_FILE_PATH, 'theme', 'light');
- printl(' - 主题配置: ' + theme);
-
- // 读取字体大小配置
- var fontSize = config.getConfig(CONFIG_FILE_PATH, 'font_size', '14');
- printl(' - 字体大小配置: ' + fontSize);
-
- // 读取自动启动配置
- var autoStart = config.getConfig(CONFIG_FILE_PATH, 'auto_start', 'false');
- printl(' - 自动启动配置: ' + autoStart);
- } catch (e) {
- printl(' - 读取配置时出错: ' + e.message);
- }
- }
- /**
- * 演示默认值的使用
- */
- function demonstrateDefaultValue() {
- printl('\n3. 演示默认值的使用:');
-
- try {
- // 尝试读取一个不存在的配置项,应该返回默认值
- var nonExistentConfig = config.getConfig(CONFIG_FILE_PATH, 'non_existent_key', 'default_value');
- printl(' - 不存在的配置项返回默认值: ' + nonExistentConfig);
-
- // 尝试从一个可能不存在的配置文件读取,也应该返回默认值
- var fromNonExistentFile = config.getConfig('/sdcard/non_existent_config.ini', 'test_key', 'fallback_value');
- printl(' - 从不存在的文件读取返回默认值: ' + fromNonExistentFile);
- } catch (e) {
- printl(' - 读取配置时出错: ' + e.message);
- }
- }
- /**
- * 演示配置的更新
- */
- function demonstrateUpdateConfig() {
- printl('\n4. 演示更新配置:');
-
- try {
- // 先读取当前主题配置
- var oldTheme = config.getConfig(CONFIG_FILE_PATH, 'theme', 'light');
- printl(' - 更新前主题配置: ' + oldTheme);
-
- // 更新主题配置
- config.setConfig(CONFIG_FILE_PATH, 'theme', 'light');
- printl(' - 已更新主题配置为light');
-
- // 验证更新是否成功
- var newTheme = config.getConfig(CONFIG_FILE_PATH, 'theme', 'light');
- printl(' - 更新后主题配置: ' + newTheme);
- } catch (e) {
- printl(' - 更新配置时出错: ' + e.message);
- }
- }
- /**
- * 演示实际应用场景
- */
- function demonstrateRealWorldScenario() {
- printl('\n5. 实际应用场景演示 - 用户设置管理:');
-
- try {
- // 假设这是应用启动时的配置加载过程
- printl(' - 加载用户设置...');
-
- // 读取并应用用户设置
- var appSettings = {
- username: config.getConfig(CONFIG_FILE_PATH, 'username', 'Guest'),
- theme: config.getConfig(CONFIG_FILE_PATH, 'theme', 'light'),
- fontSize: parseInt(config.getConfig(CONFIG_FILE_PATH, 'font_size', '14'), 10),
- autoStart: config.getConfig(CONFIG_FILE_PATH, 'auto_start', 'false') === 'true'
- };
-
- // 打印加载的设置
- printl(' - 已加载的用户设置:');
- printl(' * 用户名: ' + appSettings.username);
- printl(' * 主题: ' + appSettings.theme);
- printl(' * 字体大小: ' + appSettings.fontSize);
- printl(' * 自动启动: ' + (appSettings.autoStart ? '开启' : '关闭'));
-
- // 模拟用户修改设置并保存
- printl('\n - 模拟用户修改设置...');
- appSettings.fontSize = 18;
- appSettings.autoStart = false;
-
- // 保存修改后的设置
- printl(' - 保存修改后的设置...');
- config.setConfig(CONFIG_FILE_PATH, 'font_size', appSettings.fontSize.toString());
- config.setConfig(CONFIG_FILE_PATH, 'auto_start', appSettings.autoStart ? 'true' : 'false');
-
- printl(' - 设置保存成功!');
- } catch (e) {
- printl(' - 应用场景演示出错: ' + e.message);
- }
- }
- /**
- * 辅助函数:创建配置管理对象
- * 提供更友好的配置管理接口
- */
- function createConfigManager(filePath) {
- // 返回一个配置管理器对象
- return {
- filePath: filePath,
-
- // 设置配置项
- set: function(key, value) {
- try {
- config.setConfig(this.filePath, key, value.toString());
- return true;
- } catch (e) {
- printl('设置配置失败: ' + e.message);
- return false;
- }
- },
-
- // 获取配置项
- get: function(key, defaultValue) {
- try {
- return config.getConfig(this.filePath, key, defaultValue !== undefined ? defaultValue.toString() : '');
- } catch (e) {
- printl('获取配置失败: ' + e.message);
- return defaultValue !== undefined ? defaultValue : '';
- }
- },
-
- // 获取布尔类型配置
- getBoolean: function(key, defaultValue) {
- var value = this.get(key, defaultValue ? 'true' : 'false');
- return value.toLowerCase() === 'true' || value === '1';
- },
-
- // 获取数字类型配置
- getNumber: function(key, defaultValue) {
- var value = this.get(key, defaultValue !== undefined ? defaultValue.toString() : '0');
- return parseFloat(value) || 0;
- }
- };
- }
- /**
- * 演示使用配置管理器的便捷性
- */
- function demonstrateConfigManager() {
- printl('\n6. 演示配置管理器的使用:');
-
- try {
- // 创建配置管理器实例
- var appConfig = createConfigManager(CONFIG_FILE_PATH);
-
- // 使用配置管理器读写配置
- printl(' - 使用配置管理器读取配置:');
- printl(' * 用户名: ' + appConfig.get('username', 'Anonymous'));
- printl(' * 字体大小(数字): ' + appConfig.getNumber('font_size', 14));
- printl(' * 自动启动(布尔): ' + appConfig.getBoolean('auto_start', false));
-
- // 使用配置管理器写入配置
- printl(' - 使用配置管理器写入配置:');
- appConfig.set('app_version', '1.0.0');
- appConfig.set('last_login', new Date().toLocaleString());
- printl(' * 已写入应用版本和最后登录时间');
-
- // 验证写入结果
- printl(' * 应用版本: ' + appConfig.get('app_version'));
- printl(' * 最后登录时间: ' + appConfig.get('last_login'));
- } catch (e) {
- printl(' - 配置管理器演示出错: ' + e.message);
- }
- }
- // 执行配置读写演示
- configDemo();
- // 执行配置管理器演示
- demonstrateConfigManager();
- /**
- * 高级应用场景:配置备份与恢复
- */
- function demonstrateConfigBackupAndRestore() {
- printl('\n7. 高级应用场景:配置备份与恢复:');
-
- try {
- var backupFilePath = '/sdcard/aiwrok_config_backup.ini';
-
- printl(' - 创建配置备份...');
- // 读取当前所有配置项
- var username = config.getConfig(CONFIG_FILE_PATH, 'username', 'Guest');
- var theme = config.getConfig(CONFIG_FILE_PATH, 'theme', 'light');
- var fontSize = config.getConfig(CONFIG_FILE_PATH, 'font_size', '14');
- var autoStart = config.getConfig(CONFIG_FILE_PATH, 'auto_start', 'false');
-
- // 写入备份文件
- config.setConfig(backupFilePath, 'username', username);
- config.setConfig(backupFilePath, 'theme', theme);
- config.setConfig(backupFilePath, 'font_size', fontSize);
- config.setConfig(backupFilePath, 'auto_start', autoStart);
- config.setConfig(backupFilePath, 'backup_date', new Date().toLocaleString());
-
- printl(' - 配置备份完成!备份路径: ' + backupFilePath);
-
- // 模拟恢复操作
- printl('\n - 模拟恢复配置...');
- var restoredUsername = config.getConfig(backupFilePath, 'username', 'Guest');
- var restoredTheme = config.getConfig(backupFilePath, 'theme', 'light');
- printl(' - 从备份恢复的用户名: ' + restoredUsername);
- printl(' - 从备份恢复的主题: ' + restoredTheme);
- printl(' - 备份时间: ' + config.getConfig(backupFilePath, 'backup_date', '未知'));
- } catch (e) {
- printl(' - 配置备份恢复演示出错: ' + e.message);
- }
- }
- /**
- * 高级应用场景:配置批量操作
- */
- function demonstrateBatchConfigOperations() {
- printl('\n8. 高级应用场景:配置批量操作:');
-
- try {
- // 批量写入配置
- printl(' - 批量写入配置...');
- var batchConfig = {
- 'app_name': 'AIWROK Demo App',
- 'app_version': '1.2.3',
- 'developer': 'AIWROK Team',
- 'debug_mode': 'true',
- 'max_retries': '3'
- };
-
- // 遍历对象并写入所有配置
- for (var key in batchConfig) {
- if (batchConfig.hasOwnProperty(key)) {
- config.setConfig(CONFIG_FILE_PATH, key, batchConfig[key]);
- printl(' * 已设置: ' + key + ' = ' + batchConfig[key]);
- }
- }
-
- // 批量读取配置
- printl('\n - 批量读取配置...');
- var keysToRead = ['app_name', 'app_version', 'developer', 'debug_mode', 'max_retries'];
- var readConfig = {};
-
- for (var i = 0; i < keysToRead.length; i++) {
- readConfig[keysToRead[i]] = config.getConfig(CONFIG_FILE_PATH, keysToRead[i], '未设置');
- }
-
- // 输出读取的配置
- for (var key in readConfig) {
- if (readConfig.hasOwnProperty(key)) {
- printl(' * ' + key + ': ' + readConfig[key]);
- }
- }
- } catch (e) {
- printl(' - 批量配置操作演示出错: ' + e.message);
- }
- }
- // 执行高级应用场景演示
- demonstrateConfigBackupAndRestore();
- demonstrateBatchConfigOperations();
- printl('\n提示:在实际使用中,请确保有正确的文件系统访问权限,并根据您的实际需求修改配置文件路径和配置项。');
- printl('本示例已包含所有配置读写相关功能,无需创建其他文件。');
复制代码
| |  | |  |
|