AppDesigne​rのメニューから、ア​プリのマニュアルペー​ジを表示させたい。

利用してアプリを作成しているのですが、アプリを初めて使う人向けにマニュアルページをつけたいと思っています。
コンポーネントライブラリ > メニューバーを出し「ユーザーマニュアル」という見出しにして、そこをクリックしたら別ウィンドウでマニュアルページが出てくるようなイメージです。マニュアルページは、特に動的な機能はなしで、画像と説明の文字が書いているだけの静的ページで考えています。
Webページの場合だと、リンク元・先のhtmlファイルを2個作ってリンクをはるだけなのですが、マトラボの場合もそのようにできるのでしょうか。調べてみたのですが、あらかじめ作成したファイルにリンクを張る方法がわかりませんでした。
探していてuifigureで「XXX.mlapp」のアプリファイルを作成する方法は出てきたのですが、この作成したファイルの中に画像や文字を表示させる方法がわかりませんでした。
探し方が悪いのだろうとは思うのですが、思いつくワードで昨日からずっと調べててもわからないので、初心者の質問で恐れ入りますがご教示いただけますと幸いです。どうぞよろしくお願いいたします。

 Accepted Answer

Kojiro Saito
Kojiro Saito on 17 Nov 2023
静的ページでしたら、HTMLやPDFファイルにしてwebコマンドで呼び出すのが最も楽だと思います。
例えば、index.htmlというファイルでマニュアルを作った場合、
% Menu selected function: Menu
function MenuSelected(app, event)
web('index.html', '-browser')
end
でWebブラウザで別ウィンドウを起動させてHTMLファイルを表示できます。「-browser」オプションを入れないとMATLABの組み込みのブラウザが立ち上がってしまうので、このオプションを入れたほうが良いです。
PDFファイルを用意して下記のように変えることもできます。
web('マニュアル.pdf', '-browser')
uifigureで別ウィンドウを立ち上げる場合、uihtmlでHTMLファイルを埋め込むことができます。index.htmlというファイルでユーザーマニュアルを作っておき、そのファイルパスをuihtmlHTMLSourceに格納します。
% Menu selected function: Menu
function MenuSelected(app, event)
fig = uifigure;
fig.Name = 'ユーザーマニュアル';
fig.Position = [690 300 800 500];
fig.Color = '#ffffff';
uih = uihtml(fig); % HTMLコンポートを作成
uih.Position = [10 10 780 480];
uih.HTMLSource = 'index.html'; % HTMLファイルを設定
end

6 Comments

mayu
mayu on 19 Nov 2023
ありがとうございます‼
webページ対応のコマンドがあったんですね💦
ご教示いただいた方法でやってみます☺
mayu
mayu on 20 Nov 2023
Edited: mayu on 20 Nov 2023
追加2点のご質問で失礼します、
●(1)スタンドアロンアプリを作成した場合、htmlファイルを「アプリケーションの実行に必要なファイル」に含めれば、パッケージ化できますでしょうか。
(配布時にファイルを1つのexeにまとめて簡単にインストールできるようにしたいと思っています。)
作業している.mlappファイルと同じ階層にmanual/index.htmlとしてマニュアルファイルを置いてアプリ作成する場合、リンクパス部分を
uih.HTMLSource = 'manual/index.html'; % HTMLファイルを設定
とすれば、スタンドアロンアプリの場合も可能でしょうか。
uihtmlのヘルプページで
すべてのサポート ファイル (HTML、JavaScript、CSS、イメージなど) は、ローカル ファイル システムがアクセスできる場所に保存しなければなりません。
という記載があり気になっております。
●(2)リンクファイルが外部サーバーにある場合は、どのように指定しますでしょうか
またローカルでということは、マニュアルページが外部サーバにある場合はNGでしょうか(URL部分がhttps://~のパスは不可?)
アプリ化前で試してみたところ、相対パスは参照できていたのですが、https://~でパスを書くとエラーになったものの、エラー文を見たところhttps://~も利用できそうな記述に見えまして…(絶対パス)
今回は、外部サーバーのファイルを参照することはないと思うのですが、別の場合でしたくなることが出てくるかもしれないのでお尋ねさせていただきました。
アプリ作成まで自分で試して作成してみたらいいのですが、管理者権限がなく、テストアプリ作成したあとの削除時に他部署に依頼しなければならないのでなるべく失敗しないように作成したいと思い事前に質問させていただいております。
お忙しいところお手数おかけしますが、どうぞよろしくお願いいたします。
Kojiro Saito
Kojiro Saito on 20 Nov 2023
「アプリケーションの実行に必要なファイル」にマニュアルのHTMLファイルとリソース一式(画像ファイルなど)を含めればスタンドアロンアプリへの展開も可能です。
上記の場合ですと、「manual」フォルダーをアプリケーションの実行に必要なファイルに含めればOKです。
また、uihtmlのドキュメントの下のほうに制約事項がありますが、「http://」や「https://」で始まる外部のHTMLは参照できません。外部サーバーにあるHTMLファイルもMATLABの検索パスにあるもののみ含められます。
制限
  • 関数 uihtml を使用して、URL Web のリソースにリンクしたり、外部 Web ページからのアプリケーションを組み込んだりすることはできません。
外部のWebページを参照したい場合は、uihyperlink (R2021a以降)またはwebコマンドを使います。
mayu
mayu on 20 Nov 2023
uihtmlでは外部html参照できないけど、uihyperlinkを使えば可能ということで、承知しました。
たびたびご教示いただき、ありがとうございます。
あともう1点すみません、メニューの装飾部分に関することなのですが、メニューを複数並べると幅が詰まっているので、例えば縦や横の余白をとりたいと思った場合に、設定する方法はありますでしょうか。
Appdesignerの設定部分をみたものの余白指定ができそうな箇所がみあたらないので、例えばテキストフィールドのメニュー文字の前後にスペースを入れて余白を作るしかないのかなとは思ったのですが、この部分以外で設定できる箇所がもしあるようでしたら、ご教示いただけますと幸いです。
Kojiro Saito
Kojiro Saito on 20 Nov 2023
uimenuで文字の余白や中央揃えを調整できる方法がないので、現在のように空白文字を入れていただくやり方しかないようです。
mayu
mayu on 20 Nov 2023
承知いたしました!
何度もありがとうございましたm(__)m

Sign in to comment.

More Answers (0)

Categories

Find more on MATLAB Web App Server in Help Center and File Exchange

Products

Release

R2021b

Asked:

on 17 Nov 2023

Commented:

on 20 Nov 2023

Community Treasure Hunt

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

Start Hunting!