如何让Eclipse RCP应用的帮助插件在浏览器中打开?
问题:如何让Eclipse RCP帮助插件在浏览器中打开?
我开发了一个附加了帮助插件的Eclipse RCP应用,点击「Open Help」按钮时,帮助内容会在新窗口中打开。请问是否可以配置让该帮助插件在浏览器窗口中打开?
我的help plugin.xml代码如下:
<?xml version="1.0"?> <plugin> <extension point="org.eclipse.help.toc"> <toc file="toc_Concepts.xml" /> <toc file="toc_Ref.xml" /> <toc file="toc_Tasks.xml" /> <toc file="toc.xml"> </toc> <toc file="testToc.xml" primary="true"> </toc> </extension> <extension point="org.eclipse.ui.menus"> <menuContribution locationURI="menu:org.eclipse.ui.main.menu"> <command commandId="org.eclipse.ui.help.displayHelp" label="Open Help" tooltip="Open the Eclipse Help System"> </command> </menuContribution> </extension> </plugin>
可以配置,下面是两种实用方案:
方案一:通过偏好设置开启外部浏览器
这是用户可自行配置的方式,也可以在代码中强制生效:
- 手动配置:打开应用的「Window > Preferences」,找到「Help > Content」,勾选「Use external browser」即可。
- 代码强制设置:在应用启动类的
start方法中添加代码,默认开启外部浏览器:
import org.eclipse.help.ui.internal.HelpUIPlugin; import org.eclipse.jface.preference.IPreferenceStore; // 放在Application类的start方法里 IPreferenceStore store = HelpUIPlugin.getDefault().getPreferenceStore(); store.setValue("org.eclipse.help.ui.useExternalBrowser", true);
方案二:自定义命令强制在浏览器打开
替换默认的帮助命令,直接调用外部浏览器打开帮助页面:
- 修改plugin.xml,替换原有的菜单命令配置:
<extension point="org.eclipse.ui.commands"> <command id="com.your.plugin.openHelpInBrowser" name="Open Help in Browser"> </command> </extension> <extension point="org.eclipse.ui.handlers"> <handler commandId="com.your.plugin.openHelpInBrowser" class="com.your.plugin.handlers.OpenHelpInBrowserHandler"> </handler> </extension> <extension point="org.eclipse.ui.menus"> <menuContribution locationURI="menu:org.eclipse.ui.main.menu"> <command commandId="com.your.plugin.openHelpInBrowser" label="Open Help" tooltip="Open Help in External Browser"> </command> </menuContribution> </extension>
- 实现自定义处理器类
OpenHelpInBrowserHandler:
import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.help.IHelpSystem; import org.eclipse.help.ui.internal.HelpUIPlugin; import org.eclipse.swt.program.Program; public class OpenHelpInBrowserHandler extends AbstractHandler { @Override public Object execute(ExecutionEvent event) throws ExecutionException { IHelpSystem helpSystem = HelpUIPlugin.getDefault().getHelpSystem(); // 获取帮助根页面的URL,也可以指定具体帮助页面路径 String helpUrl = helpSystem.getHelpURL(null); Program.launch(helpUrl); return null; } }
根据你的需求选择方案:方案一灵活,用户可自行切换;方案二强制用浏览器打开,无需用户配置。
内容的提问来源于stack exchange,提问作者Alien
相关产品推荐
相关产品推荐

