0

我想使用 Safari cookie 来验证我的应用程序的用户。我可以用 SFSafariViewController 做到这一点。但问题是我的应用程序中有 UIWebView 来显示一些信息。即使用户使用 safari 登录,他们也会被要求通过 UIWebView 再次登录。我想同步这个。意味着如果用户通过 safari 登录,他不应该在应用程序中再次登录。我知道 safari 和 uiwebview 不共享 cookie,所以我想将所有内容移至 safari。是否可以在视图控制器中显示 safari?

谢谢, 里查

4

1 回答 1

0

PopoverViewController 方法

    let vc = SFSafariViewController(url: URL, entersReaderIfAvailable:false)
    vc.modalPresentationStyle = .popover
    vc.preferredContentSize = CGSize(width: self.view.frame.width/2, height: self.view.frame.height/2) // Or put any size
    if let popover = vc.popoverPresentationController {
        popover.sourceView = self.view // You can also put the source button
        popover.permittedArrowDirections = .any
        popover.sourceRect = CGRect(x: 0, y: 0, width: 85, height: 30)
        popover.delegate = self
        self.present(vc, animated: true, completion: nil)
    }

然后声明这个子类:

class ViewController: UIViewController, UIPopoverPresentationControllerDelegate

但这仅适用于 iPad,所以放这个:

func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle {
    return .none
}

结果

于 2016-11-12T21:00:51.253 回答