Using Safariservices swift how to code around the small black box

517 Views Asked by At

Using SFSafariViewController, works well but for some reason when I go to this webpage [knowitall.ch], it starts up by opening a zoomed view? with a small black box that I need to press to get the full webpage.

enter image description here

My code couldn't be simpler.

if let url = URL(string: url2U) {
        let vc = SFSafariViewController(url: url, entersReaderIfAvailable: true)
        vc.delegate = self
        present(vc, animated: true)
    }

If I press the box I get the correct view, how to code around this so I open with the second view here? black box not required :)

enter image description here

1

There are 1 best solutions below

0
Code Different On BEST ANSWER

That "zoomed view" is the Reader Mode. It shows up because you asked for it. Set entersReaderIfAvailable to false if you don't want it. Also, init(url:entersReaderIfAvailable:) has been deprecated in iOS 11. You need to initialize it with a config object:

if let url = URL(string: url2U) {
    let vc: SFSafariViewController

    if #available(iOS 11.0, *) {
        let config = SFSafariViewController.Configuration()
        config.entersReaderIfAvailable = false
        vc = SFSafariViewController(url: url, configuration: config)
    } else {
        vc = SFSafariViewController(url: url, entersReaderIfAvailable: false)
    }
    vc.delegate = self
    present(vc, animated: true)
}