diff --git a/AideDeJeu/AideDeJeu.iOS/PdfViewRenderer.cs b/AideDeJeu/AideDeJeu.iOS/PdfViewRenderer.cs index 4fce8061..965d77a4 100644 --- a/AideDeJeu/AideDeJeu.iOS/PdfViewRenderer.cs +++ b/AideDeJeu/AideDeJeu.iOS/PdfViewRenderer.cs @@ -5,6 +5,7 @@ using System.IO; using System.Linq; using System.Net; using System.Text; +using System.Threading.Tasks; using AideDeJeu.iOS; using AideDeJeu.Views; using Foundation; @@ -17,21 +18,23 @@ namespace AideDeJeu.iOS { public class PdfViewRenderer : ViewRenderer { - protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) + protected override async void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) { base.OnElementPropertyChanged(sender, e); if(e.PropertyName == "Uri") { + LoadPdfJS(); var pdfView = Element as PdfView; if (pdfView?.Uri != null) { + await Task.Delay(1000); LoadFile(pdfView.Uri); } } } - protected override void OnElementChanged(ElementChangedEventArgs e) + protected override async void OnElementChanged(ElementChangedEventArgs e) { base.OnElementChanged(e); @@ -45,10 +48,12 @@ namespace AideDeJeu.iOS } if (e.NewElement != null) { + LoadPdfJS(); var pdfView = Element as PdfView; if (pdfView?.Uri != null) { + await Task.Delay(1000); LoadFile(pdfView.Uri); } } @@ -57,11 +62,15 @@ namespace AideDeJeu.iOS void LoadFile(string fileName) { string filePath = Path.Combine(Xamarin.Essentials.FileSystem.CacheDirectory, string.Format("pdf/{0}", WebUtility.UrlEncode(fileName))); - Control.LoadRequest(new NSUrlRequest(new NSUrl(filePath, false))); - Control.ScalesPageToFit = true; + //Control.LoadRequest(new NSUrlRequest(new NSUrl(filePath, false))); + //Control.ScalesPageToFit = true; + + var bytes = File.ReadAllBytes(filePath); + + Control.EvaluateJavascript($"PDFViewerApplication.open(new Uint8Array({bytes}))"); } - void LoadPdfJS(string fileName) + void LoadPdfJS() { string filePath = NSBundle.MainBundle.ResourceUrl.Append("pdfjs/web/viewer.html", false).Path; //string filePath = Path.Combine(Xamarin.Essentials.FileSystem.CacheDirectory, string.Format("pdf/{0}", WebUtility.UrlEncode(fileName)));