如何在Objective-c中使用SafariViewController?

时间:2015-12-11 21:54:03

标签: ios objective-c

Apple今天拒绝了我的应用程序建议,除其他事项外,我不应强迫我的用户访问Safari以访问我的网页。他们建议使用iOS9中新增的SafariWebController。我去寻找指导,只找到了Swift教程。

我一直在使用以下功能启动Safari,并与按钮相关联:

NSURL *url = [NSURL URLWithString:WEBSITE_REGISTRATION_URL];
[[UIApplication sharedApplication] openURL:url];

所以,我会分享我的简单配置,让我们这些人试图跟上那些尚未使用Swift的人。

1 个答案:

答案 0 :(得分:33)

共有5个步骤:

  1. 单击您的项目目标,然后选择“Build Phases”。在“Build Phases”下,单击“Link Binary with Libraries”箭头,然后单击加号。在将打开的窗口中搜索SafariServices。在列表中突出显示它,然后单击“添加”。     enter image description here

  2. 将库导入到按钮所在的.m文件中:

    #import <SafariServices/SafariServices.h>
    
  3. 在.m文件中定义类扩展以符合Safari VC协议:

    @interface SKWelcomeViewController () <SFSafariViewControllerDelegate>
    
  4. 实现以下委托方法,当需要解除对Safari View Controller的解雇时将调用该方法:

    - (void)safariViewControllerDidFinish:(SFSafariViewController *)controller {
        [self dismissViewControllerAnimated:true completion:nil];
    }
    
  5. 最后,IBAction中的代码:

    SFSafariViewController *svc = [[SFSafariViewController alloc] initWithURL:url];
    svc.delegate = self;
    [self presentViewController:svc animated:YES completion:nil];
    
  6. 享受!