超链接导致已编译的 MATLAB 应用程序崩溃
Hyperlink causes compiled MATLAB application to crash
我有一个已编译的 matlab 应用程序,它有一个图形用户界面。此 gui 还包含一个网页,index.html。在html,有一个hyperlink到一个网站。单击此 link 时,我希望 matlab 在外部浏览器中加载网页。目前,这是我使用的 hyperlink:
<a href="matlab:web('http://www.google.com','-browser')">Help</a>
但是,当点击时,编译的程序立即崩溃并关闭。当我从 matlab 中启动程序时,这不会发生;在这种情况下,它按预期(和想要)工作。只有在编译应用程序时才会出现效果。为什么是这样?有什么办法可以解决吗?
编辑:这是一个简单的可验证示例等
首先是简单的matlab代码:
% Create a blank figure window
f=figure('Name','Browser GUI Fail','Units','norm');
% Add the browser object
com.mathworks.mlwidgets.html.HTMLRenderer.setUseWebRenderer(false);
jObject = com.mathworks.mlwidgets.html.HTMLBrowserPanel;
[browser,container] = javacomponent(jObject, [], f);
set(container,'Units','normalized','Position',[0 0 1 1 ]);
url=['file:/' which('index.html') ];
browser.setCurrentLocation(url);
其次,html 文件,index.html
<!DOCTYPE html>
<html>
<body>
<p>stuff, anything at all <a href="matlab:web('http://www.google.com','-browser')">Help</a> </p>
</body>
</html>
link 在程序的编译版本中失败。我在 Windows,并使用 2014b。
我在 Windows 编译的 GUI 中遇到了类似的问题,我使用 dos 调用解决了它。
dos('start http://www.google.com');
我有一个已编译的 matlab 应用程序,它有一个图形用户界面。此 gui 还包含一个网页,index.html。在html,有一个hyperlink到一个网站。单击此 link 时,我希望 matlab 在外部浏览器中加载网页。目前,这是我使用的 hyperlink:
<a href="matlab:web('http://www.google.com','-browser')">Help</a>
但是,当点击时,编译的程序立即崩溃并关闭。当我从 matlab 中启动程序时,这不会发生;在这种情况下,它按预期(和想要)工作。只有在编译应用程序时才会出现效果。为什么是这样?有什么办法可以解决吗?
编辑:这是一个简单的可验证示例等
首先是简单的matlab代码:
% Create a blank figure window
f=figure('Name','Browser GUI Fail','Units','norm');
% Add the browser object
com.mathworks.mlwidgets.html.HTMLRenderer.setUseWebRenderer(false);
jObject = com.mathworks.mlwidgets.html.HTMLBrowserPanel;
[browser,container] = javacomponent(jObject, [], f);
set(container,'Units','normalized','Position',[0 0 1 1 ]);
url=['file:/' which('index.html') ];
browser.setCurrentLocation(url);
其次,html 文件,index.html
<!DOCTYPE html>
<html>
<body>
<p>stuff, anything at all <a href="matlab:web('http://www.google.com','-browser')">Help</a> </p>
</body>
</html>
link 在程序的编译版本中失败。我在 Windows,并使用 2014b。
我在 Windows 编译的 GUI 中遇到了类似的问题,我使用 dos 调用解决了它。
dos('start http://www.google.com');