How can I determine if a matlab app is running as a web app?

11 ビュー (過去 30 日間)
Roger Schvaneveldt
Roger Schvaneveldt 2020 年 11 月 2 日
編集済み: Sean de Wolski 2025 年 9 月 23 日 17:14
I need to retrieve and save data differently when an app is running as a web app so I need something like is deployed that distinguishes between web deployment and standalone app deployment.
  2 件のコメント
Roger Schvaneveldt
Roger Schvaneveldt 2020 年 11 月 5 日
編集済み: Roger Schvaneveldt 2020 年 11 月 5 日
I found a suggestion that led me to solve the problem with this function which requires creating an empty file named, file.to.add.to.web.app, and adding that file to the compiled web app.
function tf = iswebdeployed()
% tf = iswebdeployed()
% tests whether an app is running as a web app
% must include a file named file.to.add.to.web.app when compiling a web app
% tf = isdeployed && exist('file.to.add.to.web.app', "file");
tf = isdeployed && exist('file.to.add.to.web.app', "file");
end
William Thielicke
William Thielicke 2024 年 1 月 21 日
I would need something similar, my code would need something like "ismatlabonline" in addition to ispc, isunix and ismac... Nothing like this available?

サインインしてコメントする。

回答 (2 件)

Hiro Yoshino
Hiro Yoshino 2020 年 11 月 2 日
Web apps run in your browser and stand-alone app opens your system window(s) and run in it (them).
  6 件のコメント
Mike McCullough
Mike McCullough 2024 年 1 月 31 日
編集済み: Rena Berman 2024 年 9 月 30 日
As a developer and seller of software, all files the user needs should NEVER be in the same folder. They need to be on a server or in the ROOT of C:. So my readmatrix(), open(), & load() have their files in a ROOT folder or:
weight = load('c:\appsM\54WEIGHT.DAT'); % C drive
weight = load('/MATLAB Drive/appsM/54WEIGHT.DAT'); % matlab drive
Walter Roberson
Walter Roberson 2024 年 1 月 31 日
編集済み: Walter Roberson 2024 年 1 月 31 日
if ispc
filebase = 'C:';
else
filebase = '/MATLAB Drive';
end
filename = fullfile(filebase, 'appsM', '54WEIGHT.DAT');
weight = load(filename);
Hardcoding the base directory is a bad idea even on Windows, as doing so restricts you to a particular directory structure. You should be writing your code so that moving your files around requires only a small amount of changes to initialization.
Suppose that MATLAB Online were to switch to Windows. Then it isn't going to happen to have the same directory structure that you have.

サインインしてコメントする。


Sean de Wolski
Sean de Wolski 2025 年 9 月 23 日 17:08
編集済み: Sean de Wolski 2025 年 9 月 23 日 17:14
The undocumented answer from here is this:
matlab.internal.environment.context.isWebAppServer
I have a few immediate uses:
  • deciding if a second figure can be opened
  • deciding if clipboard can be called
  • deciding about calling various system commands
It's frustrating that this is not a documented function, and a decent or comprehensive list of reasons for its use not documented. Or alternatively, that there were public capabilities that could be accessed like (matlab.environment.capability.ClipboardAvailable)

カテゴリ

Help Center および File ExchangeMATLAB Web App Server についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by