開発ブログ - FireMonkey - OS X で URLをデフォルトブラウザで開く
OS X で URLをデフォルトブラウザで開く
アプリケーションを作るときに必ず作る About ダイアログ
About ダイアログに、ホームページのURL を記載することも多いですよね。
そして URL をクリックしたらホームページを開きたいものです。
Windows の場合は、URL を開くのに Shell API を使います。
uses
Winapi.Windows, Winapi.ShellApi;
procedure ShowURL(const URL: String);
begin
ShellExecute(0, 'open', PChar(URL), nil, nil, SW_SHOW);
end;
では OS X ではどのようにするのでしょうか?
Objective-C でデフォルトブラウザを開く
Objective-C でデフォルトブラウザで URL を開くには以下のようにします。
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://example.com/"]];
from Mac OS XアプリからデフォルトのブラウザでURLを開きたい
Delphi で書いてみよう
これを Delphi で書き直すと
uses
Macapi.Foundation, Macapi.AppKit;
procedure ShowURL(const URL: String);
var
workspace: NSWorkspace;
AUrl: NSURL;
begin
workspace := TNSWorkspace.Wrap(TNSWorkspace.OCClass.sharedWorkspace);
AUrl := TNSURL.Wrap(TNSURL.OCClass.URLWithString(NSSTR(URL)));
workspace.openURL(AUrl);
end;
ちなみに、OS X では POSIX の _system関数を使って開く方法もあるそうです。
from 指定したURLをデフォルトのウェブブラウザで開く - 偏った言語信者の垂れ流し
_system(PAnsiChar('open http://example.org/'));
コードとしてはこちらの方が短くて簡単ですね。 orz...
[参考サイト]
Mac OS XアプリからデフォルトのブラウザでURLを開きたい