iOS
Services Safari
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];