iOS
Servicios de safari
Buscar..
Implementar SFSafariViewControllerDelegate
Debe implementar SFSafariViewControllerDelegate
para que se notifique a su clase cuando el usuario presione el botón Hecho en SafariViewController y también puede descartarlo.
Primero declara tu clase para implementar el protocolo.
class MyClass: SFSafariViewControllerDelegate {
}
Implementar el método de delegado para ser notificado en el despido.
func safariViewControllerDidFinish(controller: SFSafariViewController) {
// Dismiss the SafariViewController when done
controller.dismissViewControllerAnimated(true, completion: nil)
}
No te olvides de establecer tu clase como el delegado de SafariViewController.
let safariVC = SFSafariViewController(URL: yourURL)
safariVC.delegate = self
Los métodos de delegado adicionales que puede implementar son:
// 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] { }
Agregar artículos a la lista de lectura de Safari
Puede agregar elementos a la Lista de lectura de un usuario en Safari llamando al método addItem
en el singleton SSReadingList
.
let readingList = SSReadingList.default()
readingList?.addItem(with: yourURL, title: "optional title", previewText: "optional preview text")
La lista de lectura predeterminada puede ser nil
si no se permite el acceso a la lista de lectura.
Además, puede verificar si la Lista de lectura admite una URL llamando a supportsURL
.
SSReadingList.default().supportsURL(URL(string: "https://example.com")!)
Esto devolverá true
o false
indicando si la URL dada es compatible con la Lista de lectura de Safari. Use esto, por ejemplo, para determinar si se muestra un botón para agregar una URL a la Lista de lectura.
Abre una URL con SafariViewController
No olvides importar primero el framework necesario.
import SafariServices
//Objective-C
@import SafariServices;
SafariViewController
una instancia de 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];
Opcionalmente, también puede decirle a SafariViewController que ingrese al modo de lectura si es posible una vez que haya terminado de cargarse.
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];
Presentar el controlador de vista.
present(safariVC, animated: true, completion: nil)
//Objective-C
[self presentViewController:sfvc animated:YES completion:nil];