#TWebBrowserEx クラス
このクラスは、Windows / OS X / iOS / Android の FireMonkey アプリケーションで WebBrowser を統一的に使用する方法を提供します。
このクラスを使って作った Web Browser は下記のようにプラットフォームに搭載されているデフォルトのウェブブラウザコントロールを使います。
Platform | Component |
---|---|
Windows | IWebBrowser(IE) |
OS X | WebView(Safari) |
iOS | WebView |
Android | WebView |
##動作環境 Delphi / C++Builder / RAD Studio の XE6, XE7, XE8, 10 Seattle
XE5 以前で動かす場合は
StrToNSSTR を NSSTR に変更
Macapi.Helpers を削除
と変更してください。
##ファイル
以下のファイルを全てダウンロードします。
FMX.WebBrowser.Cocoa.pas OS X 用 WebBrowser クラス
FMX.WebBrowser.Win.pas Windows 用 WebBrowser クラス
FMX.WebBrowserEx.pas マルチプラットフォームの WebBrowser を統一的に扱うクラス
FMX.WebBrowser.Helpers.pas WebBrowser 用のヘルパルーチン
Macapi.WebView.pas OS X の WebView の定義を Delphi に移植したユニット
##使用方法
下記のように、iOS / Android の TWebBrowser と同じように使えます。
uses
FMX.WebBrowserEx;
type
TForm1 = class(TForm)
Panel1: TPanel;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
FWebBrowser: TWebBrowserEx;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
FWebBrowser := TWebBrowserEx.Create(Self);
FWebBrowser.Parent := Panel1;
FWebBrowser.Align := TAlignLayout.Client;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
FWebBrowser.URL := 'http://www.embarcadero.com/';
// こんな風に String を読み込ませる事もできます
FWebBrowser.LoadFromStrings('<html><body>Hello WebBrowser!</body></html>', '');
end;
また、下記のように、JavaScript も使えます。
procedure TForm1.Button2Click(Sender: TObject);
var
Value: String;
begin
// HTML に定義されている JavaScript 関数 foo に引数を2つ渡して呼ぶ
FWebBrowser.CallJS('foo', [Param1, Param2]);
// TWebBrowser の標準的な方法で呼ぶ
FWebBrowser.EvaluteJavascript('alert("Delphi!")');
// HTML のタグの値を取得する
// <input type="text" id="bar" value="" /> というタグがあった場合に
// ↓これで bar という id の属性値 value を取得できる
Value := FWebBrowser.GetTagValue('bar', 'value');
end;
##既知のバグみたいな仕様
Tab キーでは TWebBrowserEx にフォーカスを移動できません。
同様に TWebBrowserEx がフォーカスを持っている場合 Tab キーで他のコントロールにフォーカスを移動できません。
IDocHostUIHandler の DocHostTranslateAccelerator を実装すれば TWebBrowser → FMX Control という方向にはフォーカスを移せると思います。
TWebBrowserEx の SetFocus を override すれば FMX Control → TWebBrowser 方向にもフォーカスを移せるかもしれません。
##著作権 Copyright (c) 2013, 2015 HOSOKAWA Jun(@pik).
本ソフトウェアは「現状のまま」で、明示であるか暗黙であるかを問わず、何らの保証もなく提供されます。 本ソフトウェアの使用によって生じるいかなる損害についても、作者は一切の責任を負わないものとします。
以下の制限に従う限り、商用アプリケーションを含めて、本ソフトウェアを任意の目的に使用し、自由に改変して再頒布することをすべての人に許可します。
-
本ソフトウェアの出自について虚偽の表示をしてはなりません。あなたがオリジナルのソフトウェアを作成したと主張してはなりません。あなたが本ソフトウェアを製品内で使用する場合、製品の文書に謝辞を入れていただければ幸いですが、必須ではありません。
-
ソースを変更した場合は、そのことを明示しなければなりません。オリジナルのソフトウェアであるという虚偽の表示をしてはなりません。
-
ソースの頒布物から、この表示を削除したり、表示の内容を変更したりしてはなりません。