Appearance
修改导航上显示的导航栏
应用场景
根据具体的业务需求,我们提供灵活的导航栏自定义功能。这包括修改现有导航栏的名称,以更好地反映其内容或品牌风格;新增导航项,以扩展网站的功能或服务;以及过滤或隐藏某些导航项,以优化用户体验或满足特定用户的需求。
扩展接口实现
java
package com.kanq;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.kanq.sdk.config.Macro;
import java.nio.charset.StandardCharsets;
public class NaviDemo {
@Macro( name = "GetUserNavi:DESTROY",describe = "修改导航上显示的导航栏")
public static byte[] getUserNavi_Destroy(byte[] macroHead,byte[][] argv) throws JsonProcessingException {
byte[] parm_byte = argv[0];
String parm = new String(parm_byte, StandardCharsets.UTF_8);
ObjectMapper objectMapper = new ObjectMapper();
JsonNode rootNode = null;
try {
rootNode = objectMapper.readTree(parm);
// 确保根节点是一个对象
if (rootNode.isObject()) {
// 获取 "data" 字段,确保它是一个数组
JsonNode dataNode = rootNode.path("data");
if (dataNode.isArray()) {
ArrayNode dataArray = (ArrayNode) dataNode;
// 遍历数组中的每个对象
for (JsonNode item : dataArray) {
// 检查是否是目标对象
if (item.isObject()
&& item.has("text")
&& item.get("text").asText().equals("业务审批12")) {
// 替换 "text" 字段的值
((ObjectNode) item).put("text", "业务审批");
break;// 替换完成后退出循环
}
}
}
}
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
return objectMapper.writeValueAsBytes(rootNode);
}
}
package com.kanq;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.kanq.sdk.config.Macro;
import java.nio.charset.StandardCharsets;
public class NaviDemo {
@Macro( name = "GetUserNavi:DESTROY",describe = "修改导航上显示的导航栏")
public static byte[] getUserNavi_Destroy(byte[] macroHead,byte[][] argv) throws JsonProcessingException {
byte[] parm_byte = argv[0];
String parm = new String(parm_byte, StandardCharsets.UTF_8);
ObjectMapper objectMapper = new ObjectMapper();
JsonNode rootNode = null;
try {
rootNode = objectMapper.readTree(parm);
// 确保根节点是一个对象
if (rootNode.isObject()) {
// 获取 "data" 字段,确保它是一个数组
JsonNode dataNode = rootNode.path("data");
if (dataNode.isArray()) {
ArrayNode dataArray = (ArrayNode) dataNode;
// 遍历数组中的每个对象
for (JsonNode item : dataArray) {
// 检查是否是目标对象
if (item.isObject()
&& item.has("text")
&& item.get("text").asText().equals("业务审批12")) {
// 替换 "text" 字段的值
((ObjectNode) item).put("text", "业务审批");
break;// 替换完成后退出循环
}
}
}
}
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
return objectMapper.writeValueAsBytes(rootNode);
}
}
效果展示
二开前效果:
二开后效果: