2011-08-19 70 views
1

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

所以我创建了一个按钮:

IBOutlet UIBarButtonItem *legal; 

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

-(IBAction)legalButtonPressed:(id)sender; 

我进入我的实现文件,这里是问题出现的地方。谈到定义这些行为,我变得困惑。由于我是iOS开发新手,我可以使用一些指导。我不知道如何强制链接进入Safari的行动。任何帮助将不胜感激!

谢谢!

回答

6

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

一旦你在厦门国际银行文件连接到按钮控制器的动作,(我认为没有必要在这里得到一个出口),你只要实现方法如下:

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

这将使用给定的网址自动打开Safari浏览器

5

看看UIApplication的文档,它有一个openURL方法,你可能会觉得有用。

1

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

例子: 点击加入您同意公司 服务条款,发现这里:http://www.site.com/tos.html和 隐私政策,网址为:http://www.site.com/privacy.html

确保链路检测在UITextView开启,它会自动将识别URL。对这些网址的任何点击都会自动启动Safari。

0

虽然你可以这样做(即在Safari中启动链接)。我建议你尽可能在用户应用中尽可能地保持用户。我猜这个法律条款是一个HTML文档?

你可以使用UIWebView来做到这一点。初始化webView并执行此操作 -

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

这将只在您的应用程序中打开url!您可以使UIWebView作为模式窗口或以许多其他方式打开...

相关问题