2013-05-03 107 views
4

我需要在iOS应用程序中使用Safari浏览器打开网页。
随着XE2有iphoneall单位,其中暴露UIApplication。 XE4不再使用FPC,所以我不能使用它。
Embarcadero documentation 说我只能用C++或使用delphi接口使用SDK(并且macapi仅适用于OSX,不适用于iOS)。所以,似乎没有UIKit框架的接口?!
我尝试另一种解决方案是:在iOS应用程序中打开URL

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

但是,这并没有影响到大家!
有没有其他的方式来打开网址,或者我运气不好来完成它?
我知道有ios的TWebBrowser组件,但我不想为了显示一个网页而走这条路。

在此先感谢!

回答

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的早期版本开始显示如何解决这些问题(基本上,字符串< - > NSString < - > NSURL),尽管它有点过时 - 正如您通过上述代码所看到的,FireMonkey已经成熟很大程度上 - 它可能会提供一些有关底层的洞察代码原因。

+3

谢谢,我终于找到了Apple.Utils文件。它位于Samples \ Delphi \ RTL \ CrossPlatform Utils文件夹中! – Peacelyk 2013-05-03 13:48:25

相关问题