Recherche…


Implémenter SFSafariViewControllerDelegate

Vous devez implémenter SFSafariViewControllerDelegate afin que votre classe soit avertie lorsque l'utilisateur appuie sur le bouton Done de SafariViewController et que vous pouvez également le supprimer.

D'abord, déclarez votre classe pour implémenter le protocole.

class MyClass: SFSafariViewControllerDelegate {

}

Implémentez la méthode des délégués à notifier en cas de licenciement.

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

N'oubliez pas de définir votre classe en tant que délégué SafariViewController.

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

Les méthodes de délégation supplémentaires que vous pouvez implémenter sont les suivantes:

// 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] { }

Ajouter des articles à la liste de lecture Safari

Vous pouvez ajouter des éléments à la liste de lecture d'un utilisateur dans Safari en appelant la méthode addItem sur le singleton SSReadingList .

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

La liste de lecture par défaut peut être nil si l'accès à la liste de lecture n'est pas autorisé.

De plus, vous pouvez vérifier si la liste de lecture prend en charge une URL en appelant supportsURL .

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

Cela renverra true ou false indiquer si l'URL donnée est prise en charge par la liste de lecture Safari. Utilisez ceci par exemple pour déterminer s'il faut afficher un bouton pour ajouter une URL à la liste de lecture.

Ouvrir une URL avec SafariViewController

N'oubliez pas d'importer le framework nécessaire en premier.

import SafariServices
//Objective-C
@import SafariServices;

Instanciez une instance 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];

Si vous le souhaitez, vous pouvez également indiquer à SafariViewController si possible une fois le chargement terminé.

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];

Présenter le contrôleur de vue.

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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow