1
0
Fork 0
mirror of https://github.com/Nioux/AideDeJeu.git synced 2025-10-31 07:26:09 +00:00

PdfView iOS à tester

This commit is contained in:
Yan Maniez 2019-05-12 13:33:56 +02:00
parent ea0139e2f4
commit 8311919fcf
2 changed files with 62 additions and 0 deletions

View file

@ -105,6 +105,7 @@
</BundleResource> </BundleResource>
<None Include="Entitlements.plist" /> <None Include="Entitlements.plist" />
<None Include="Info.plist" /> <None Include="Info.plist" />
<Compile Include="PdfViewRenderer.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<BundleResource Include="Resources\Fonts\LinLibertine_R.ttf"> <BundleResource Include="Resources\Fonts\LinLibertine_R.ttf">
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>

View file

@ -0,0 +1,61 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using AideDeJeu.Views;
using Foundation;
using UIKit;
using Xamarin.Forms.Platform.iOS;
namespace AideDeJeu.iOS
{
public class PdfViewRenderer : ViewRenderer<PdfView, UIWebView>
{
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
if(e.PropertyName == "Uri")
{
var pdfView = Element as PdfView;
if (pdfView?.Uri != null)
{
LoadFile(pdfView.Uri);
}
}
}
protected override void OnElementChanged(ElementChangedEventArgs<PdfView> e)
{
base.OnElementChanged(e);
if (Control == null)
{
SetNativeControl(new UIWebView());
}
if (e.OldElement != null)
{
// Cleanup
}
if (e.NewElement != null)
{
var pdfView = Element as PdfView;
if (pdfView?.Uri != null)
{
LoadFile(pdfView.Uri);
}
}
}
void LoadFile(string fileName)
{
string filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), string.Format("pdf/{0}", WebUtility.UrlEncode(fileName)));
Control.LoadRequest(new NSUrlRequest(new NSUrl(filePath, false)));
Control.ScalesPageToFit = true;
}
}
}