在ios应用程序中打开URL

时间:2013-05-03 08:48:34

标签: ios delphi firemonkey delphi-xe4

我需要在我的iOS应用程序中打开带有safari的网页 对于XE2,有 iphoneall 单元,它暴露了UIApplication。 XE4不再使用FPC,所以我不能使用它。
Embarcadero documentation 我说只能使用C ++或使用delphi接口的SDK(而且,macapi仅用于OSX,而​​不是iOS)。那么,似乎UIKit框架没有界面?!
我尝试的另一个解决方案是:

_system('open http://www.google.com');

但这完全没有影响!
有没有其他方法可以打开网址,或者我没有运气来完成它? 我知道有ios的TWebBrowser组件,但我不想只是为了显示一个网页。

1 个答案:

答案 0 :(得分:5)

偶然,两天前Embarcadero posted a code snippet to do exactly this的某个人。

如果您使用的是XE4,请查看示例,您可以在最终代码中找到一个(抱歉,不确定名称):

OpenURL('http://www.embarcadero.com');

这使用了XE4 FireMonkey框架和David Clegg编写的类帮助程序,可以在示例中找到。

如果您使用的是较旧版本的FireMonkey,则可以使用相当繁琐的代码:

function SharedApplication: UIApplication;
begin
  Result := TUIApplication.Wrap(TUIApplication.OCClass.sharedApplication);
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
  SharedApplication.openURL(TNSURL.Wrap(TNSURL.OCClass.URLWithString(NSSTR(PChar(String('http://www.embarcadero.com'))))));
end;

(署名:代码片段全部从linked blog post复制。)

FireMonkey早期还有一个very old forum post来展示如何解决这些问题(基本上是字符串< - > NSString< - > NSURL)了,虽然它有点出来日期 - 正如您在上面的代码中看到的那样,FireMonkey已经成熟了 - 它可以让我们深入了解代码的根本原因。