簡體   English   中英

XE6 firemonkey IOS-DELPHI中的打開URL

[英]Open URL in XE6 firemonkey IOS-DELPHI

早上好,

我正在嘗試為android和IOS做一個跨平台的應用程序,以打開一個URL,該URL將作為參數在android默認瀏覽器中傳遞,我已經使用以下代碼實現了:

 { Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW,
  TJnet_Uri.JavaClass.parse(StringToJString
  ('http://www.***.com'));
  SharedActivity.startActivity(Intent); }

但是在IOS中,我不知道如何在默認瀏覽器中打開URL,我搜索了數千個使用方法的頁面,但沒有一個對我有幫助,如果可以的話,我將不勝感激!

這是我所做的事情的理想路徑(不包括錯誤處理等)

uses
 //...
 IdURI,
{$IFDEF ANDROID}
  Androidapi.Helpers, FMX.Helpers.Android, Androidapi.JNI.GraphicsContentViewText, 
  Androidapi.JNI.App, Androidapi.JNI.Net, Androidapi.JNI.JavaTypes
{$ENDIF ANDROID}

{$IFDEF MSWINDOWS}
  Winapi.ShellAPI, Winapi.Windows
{$ENDIF MSWINDOWS}

{$IFDEF IOS}
    Macapi.Helpers, iOSapi.Foundation, FMX.Helpers.iOS
{$ENDIF IOS}
    ;

//...
procedure TForm1.launchBrowser();
var
  myURL: string;
{$IFDEF ANDROID}
  Intent: JIntent;
{$ENDIF ANDROID}

{$IFDEF IOS}
  NSU: NSUrl;
{$ENDIF IOS}
begin
  myURL := 'http://www.example.com';
{$IFDEF MSWINDOWS}
  ShellExecute(0, 'OPEN', PChar(myURL), '', '', SW_SHOWNORMAL);
{$ENDIF MSWINDOWS}

{$IFDEF IOS}
  NSU   := StrToNSUrl(TIdURI.URLEncode(myURL));
  if SharedApplication.canOpenURL(NSU) then
  begin
    SharedApplication.openUrl(NSU);
  end;
{$ENDIF IOS}

{$IFDEF ANDROID}
  Intent := TJIntent.Create;
  Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
  Intent.setData(StrToJURI(myURL));
  TAndroidHelper.Activity.startActivity(Intent);
{$ENDIF ANDROID}
end;

注意:不建議使用“ SharedActivity”(至少在10 / Seatle中)。 替換似乎是“ TAndroidHelper.Activity”

uses Androidapi.Helpers;

procedure TForm1.SpeedButton1Click(Sender: TObject);
var   Intent: JIntent;
begin
   Intent := TJIntent.Create;
   Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
   Intent.setData(StrToJURI('http://www.website.com.br/index.php'));
   SharedActivity.startActivity(Intent);
end;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM