出于法律原因,我有义务在我的应用程序中显示服务条款,在外部服务器上显示PDF。我认为最容易做的就是创建一个UIBarButton项目,然后创建一个在Safari中启动链接的IBAction。
所以我创建了一个按钮:
IBOutlet UIBarButtonItem *legal;
然后我把它变成一个非原子属性并在我的实现文件中合成它,对吧?我继续创建一个IBAction:
-(IBAction)legalButtonPressed:(id)sender;
我进入我的实施文件,这就是问题所在。在定义这些行动时,我感到困惑。由于我是iOS开发的新手,我可以使用一些指导。我不知道如何强制链接到动作中的safari。任何帮助将不胜感激!
谢谢!
答案 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
打开为模态窗口或以其他许多方式...