0

アプリのユーザー認証に Safari Cookie を使用したいと考えています。私は SFSafariViewController でそれを行うことができます。しかし問題は、アプリにいくつかの情報を表示する UIWebView があることです。ユーザーが safari を使用してログインしている場合でも、UIWebView を使用して再度ログインするように求められます。これを同期したい。ユーザーがサファリでログインしている場合、アプリで再度ログインする必要はありません。サファリと uiwebview は Cookie を共有しないことがわかっているので、すべてをサファリに移動したいと考えています。ビューコントローラー内でサファリを表示することは可能でしょうか?

ありがとう、リチャ

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 に答える