Ricerca…


Implementare SFSafariViewControllerDelegate

È necessario implementare SFSafariViewControllerDelegate modo che la classe venga notificata quando l'utente preme il pulsante Fine su SafariViewController e si può anche ignorarlo.

Prima dichiari la tua classe per implementare il protocollo.

class MyClass: SFSafariViewControllerDelegate {

}

Implementare il metodo delegato da notificare in caso di licenziamento.

func safariViewControllerDidFinish(controller: SFSafariViewController) {
    // Dismiss the SafariViewController when done
    controller.dismissViewControllerAnimated(true, completion: nil)
}

Non dimenticare di impostare la classe come delegato di SafariViewController.

let safariVC = SFSafariViewController(URL: yourURL)
safariVC.delegate = self

Ulteriori metodi delegati che puoi implementare sono:

// Called when the initial URL load is complete.
safariViewController(_ controller: SFSafariViewController, didCompleteInitialLoad didLoadSuccessfully: Bool) { }

// Called when the user taps an Action button.
safariViewController(_ controller: SFSafariViewController, activityItemsFor URL: URL, title: String?) -> [UIActivity] { }

Aggiungi elementi all'elenco di lettura di Safari

È possibile aggiungere elementi all'elenco di lettura di un utente in Safari chiamando il metodo addItem sul singleton SSReadingList .

let readingList = SSReadingList.default()
readingList?.addItem(with: yourURL, title: "optional title", previewText: "optional preview text")

L'Elenco di lettura predefinito può essere nil se l'accesso all'Elenco di lettura non è consentito.

Inoltre è possibile verificare se l'Elenco di lettura supporta un URL chiamando supportsURL .

SSReadingList.default().supportsURL(URL(string: "https://example.com")!)

Ciò restituirà true o false indicando se l'URL indicato è supportato da Elenco di lettura di Safari. Ad esempio, per determinare se mostrare un pulsante per aggiungere un URL alla lista di lettura.

Apri un URL con SafariViewController

Non dimenticare di importare prima il framework necessario.

import SafariServices
//Objective-C
@import SafariServices;

SafariViewController un'istanza di un'istanza di SafariViewController .

let safariVC = SFSafariViewController(URL: URL(string: "your_url")!)
//Objective-C
@import SafariServices;
NSURL *URL = [NSURL URLWithString:[NSString stringWithFormat:@"http://www.google.com"]];
SFSafariViewController *sfvc = [[SFSafariViewController alloc] initWithURL:URL];

Opzionalmente puoi anche dire a SafariViewController di entrare in modalità di lettura, se possibile, una volta completato il caricamento.

let safariVC = SFSafariViewController(URL: URL(string: "your_url")!, entersReaderIfAvailable: true)
//Objective-C
NSURL *URL = [NSURL URLWithString:[NSString stringWithFormat:@"http://www.google.com"]];
SFSafariViewController *sfvc = [[SFSafariViewController alloc] initWithURL:URL entersReaderIfAvailable:YES];

Presenta il controller della vista.

present(safariVC, animated: true, completion: nil)
//Objective-C
[self presentViewController:sfvc animated:YES completion:nil];


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow