如何使用默认应用程序打开URL,PDF等?

时间:2013-09-18 13:35:02

标签: android delphi delphi-xe5

我正在使用Delphi XE5开发Android应用程序,我想知道如何在默认浏览器中打开URL,以及使用默认阅读器的PDF文件。 在Windows开发中,我使用了ShellExecute,但对于Android和iOS,我应该使用什么?

2 个答案:

答案 0 :(得分:17)

对于这些类型的pf任务,您可以使用JIntent接口在Delphi中表示的Intent类。

试试这些样本

打开网址

uses
  Androidapi.JNI.GraphicsContentViewText,
  FMX.Helpers.Android;


procedure TForm3.Button1Click(Sender: TObject);
var
  Intent: JIntent;
begin
  Intent := TJIntent.Create;
  Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
  Intent.setData(StrToJURI('http://www.google.com'));
  SharedActivity.startActivity(Intent);
end;

打开PDF文件

uses
  Androidapi.JNI.GraphicsContentViewText,
  Androidapi.JNI.JavaTypes,
  FMX.Helpers.Android;


procedure TForm3.Button1Click(Sender: TObject);
var
  Intent: JIntent;
begin
  Intent := TJIntent.Create;
  Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
  Intent.setDataAndType(StrToJURI('filepath'),  StringToJString('application/pdf'));
  SharedActivity.startActivity(Intent);
end;

答案 1 :(得分:1)

n00b这里无法解决如何将评论添加到已针对上一个答案发布的评论集中,但是我使用这个,这是主题的另一个变体,使用构造函数参数:

procedure LaunchURL(const URL: string);
var
  Intent: JIntent;
begin
  Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW,
    TJnet_Uri.JavaClass.parse(StringToJString(URL)));
  SharedActivity.startActivity(Intent);
end;