Как открыть URL-адреса, PDF файлы и т.д. С помощью приложений по умолчанию?

Я разрабатываю приложение для Android с Delphi XE5, и мне хотелось бы узнать, как я могу открыть URL-адрес в браузере по умолчанию и файл PDF с устройством чтения по умолчанию. Разрабатывая для Windows, я использовал ShellExecute, но для Android и iOS, что я должен использовать?

Ответ 1

Для такой задачи pf вы можете использовать класс Intent, который представлен в Delphi интерфейсом JIntent.

Попробуйте эти образцы

Открыть URL

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;

Ответ 2

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;