如何创建链接到Safari的按钮?

时间:2011-08-19 02:40:28

标签: iphone objective-c xcode

出于法律原因,我有义务在我的应用程序中显示服务条款,在外部服务器上显示PDF。我认为最容易做的就是创建一个UIBarButton项目,然后创建一个在Safari中启动链接的IBAction。

所以我创建了一个按钮:

IBOutlet UIBarButtonItem *legal;

然后我把它变成一个非原子属性并在我的实现文件中合成它,对吧?我继续创建一个IBAction:

-(IBAction)legalButtonPressed:(id)sender;

我进入我的实施文件,这就是问题所在。在定义这些行动时,我感到困惑。由于我是iOS开发的新手,我可以使用一些指导。我不知道如何强制链接到动作中的safari。任何帮助将不胜感激!

谢谢!

4 个答案:

答案 0 :(得分:6)

IBOutlet和IBActions用于Interface Builder连接。如果在xib文件上有UIBarButtonItem,则可以通过右键单击文件所有者对象将其操作连接到控制器。与插座一样。

一旦你在连接到xib文件中的按钮的控制器中执行了操作,(我认为不需要在这里获得插座),你只需按如下方式实现该方法:

-(IBAction)legalButtonPressed:(id)sender {
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"http://yourdomain.com/legal.pdf"]];
}

这会自动打开带有给定网址的safari

答案 1 :(得分:5)

查看UIApplication的文档,它有一个openURL方法,您可能会发现它很有用。

答案 2 :(得分:1)

另一种选择是将您的法律文字包含在UITextView

实施例: 点击加入即表示你同意公司的意见 服务条款,可在此处找到:http://www.site.com/tos.html和 隐私政策,可在此处找到:http://www.site.com/privacy.html

确保在UITextView中启用了链接检测功能,它会自动识别网址。点击这些网址会自动启动Safari。

答案 3 :(得分:0)

虽然您可以采用这种方法(即在Safari中启动链接)。我建议您尝试在应用中尽可能多地保留用户。我猜这个法律条款是HTML文档吗?

您可以使用UIWebView执行此操作。初始化webView并执行此操作 -

NSURL *url        = [NSURL URLWithString:webAddress];
NSURLRequest *req = [NSURLRequest requestWithURL:url];
[webView loadRequest:req];

这将仅在您的应用中打开网址!您可以将UIWebView打开为模态窗口或以其他许多方式...