请问有没有办法直接点击主菜单,让浏览器打开一个外部链接呢?比如打开百度的主页,可以通过XML的配置实现么?
文档里只找到这个说明,但是没说怎么使用啊,这个自定义的Runner怎么设置到主菜单里呢?
用这个方法后,发现在XML里面设置 properties
属性想传入属性好像无效了,有什么办法传入属性吗?比如跳转的url
XML 配置实现不了。但是可以通过代码实现:
- menu.xml 配置:
<menu id="application-cubademo" insertBefore="administration" caption="mainMsg://menu_config.application-cubademo">
<item id="menu1" caption="mainMsg://menu_config.testMenu"/>
<item id="menu2" caption="mainMsg://menu_config.testMenu"/>
</menu>
- 扩展主界面,添加下列代码:
@UiController("main") // 使用 main 替换框架默认的主界面。
@UiDescriptor("ext-main-screen.xml")
public class ExtMainScreen extends MainScreen {
@Inject
private SideMenu sideMenu; // 这里根据你的主界面注入界面中的 menu
@Inject
private WebBrowserTools webBrowserTools;
Map<String,String> menuLink = new HashMap<>();
@Subscribe
public void onInit(InitEvent event) {
// 这里我是手动设置的,你可以从数据库读取。
menuLink.put("menu1","https://blog.abmcode.com");
menuLink.put("menu2","https://www.abmcode.com");
menuLink.forEach((key,value)->{
SideMenu.MenuItem testMenu = sideMenu.getMenuItemNN(key);
testMenu.setCommand(item->{
webBrowserTools.showWebPage(value,null);
});
});
}
}
谢谢了