在ios应用程序中打开URL

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

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

提前致谢!

解决方法

两天前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已经成熟了 – 它可以让我们深入了解代码的根本原因.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...