Présentation du Quick Look Framework sur Xamarin.iOS

Sur la majorité des applications iOS, un viewer de documents est présent nativement : il permet de prévisualiser la grande majorité des documents sans qu'il ne soit nécessaire d'installer une application particulière.

Présentation du Quick Look Framework

Cette fonctionnalité est rendue possible grâce au Quick Look Framework qui, depuis iOS 4.2, permet la prévisualisation d'un grand nombre de type de documents:

  • Documents Office
  • PDF
  • Images
  • Fichiers texte
  • Etc.

Implémentation dans une application Xamarin.iOS

La mise en place de cette fonctionnalité repose sur 2 éléments importants: les QLPreviewItem (qui représentent les éléments qui seront affichés dans le prévisualiseur) et les QLPreviewControllerDataSource (qui symbolisent la source de données).

Voici, à titre d'exemple, une implémentation potentielle pour permettre la prévisualisation d'un item:

public class TestQLPreviewItem : QLPreviewItem
{
	private string _fileName, _filePath;

	public QLPreviewItemFileSystem(string fileName, string filePath)
	{
		_fileName = fileName;
		_filePath = filePath;
	}

	public override string ItemTitle
	{
		get
		{
			return _fileName;
		}
	}

	public override NSUrl ItemUrl
	{
		get
		{
			var url = NSUrl.FromFilename(_filePath);
			return url;
		}
	}
}

La propriété ItemTitle permet de définir le titre qui sera utilisé alors que ItemUrl permet au prévisualiseur de savoir où aller chercher le fichier pour en afficher l'aperçu! En ce qui concerne la source de données, la mise en place est également assez simple (libre à vous de déterminer si vous voulez travailler avec un élément, plusieurs, etc.):

public class TestQLPreviewControllerDataSource : QLPreviewControllerDataSource
{
	private TestQLPreviewItem _item;

	public TestQLPreviewControllerDataSource(TestQLPreviewItem item)
	{
		this._item = item;
	}

	public override IQLPreviewItem GetPreviewItem(QLPreviewController controller, nint index)
	{
		return _item;
	}

	public override nint PreviewItemCount(QLPreviewController controller)
	{
		return 1;
	}
}

A présent, il ne reste plus qu'à instancier la source de données et à lui passer en paramètres l'item que vous souhaitez afficher. Pour cela, le Quick Look Framework repose sur l'utilisation d'un simple controller (QLPreviewController) qu'il suffit d'instancier et d'afficher à l'écran:

var topViewController = ApplicationHelpers.GetTopViewController();

var previewItem = new TestQLPreviewItem(fileName, filePath);
var previewController = new QuickLook.QLPreviewController();
previewController.DataSource = new TestPreviewControllerDataSource(previewItem);

topViewController.NavigationController.PresentViewController(previewController, true, null);

Et voilà ! A présent, si vous appelez le code précédent dans votre application, vous pourrez voir le document s'afficher correctement dans la majorité des cas y compris dans le simulateur, là où c'est généralement plus compliqué car les applications correspondantes (viewer PDF, etc.) ne sont pas installées !

 QL.png

 

Happy coding! :)

 

Ces billets pourraient aussi vous intéresser

Vous nous direz ?!

Commentaires

comments powered by Disqus