2017-09-13 8 views
0

J'utilise Xamarin iOS. J'aimerais que notre application ouvre un fichier .pdf dans le lecteur par défaut. Pour Android, j'ai réussi à le faire en suivant un double processus: (1) copier le fichier du dossier Assets dans le dossier Téléchargements de l'appareil Android, et (2) démarrer une activité pour afficher le fichier.Xamarin iOS: Comment ouvrir un fichier .pdf en utilisant le lecteur par défaut?

Je ne trouve aucune ressource similaire pour iOS. Nous ne voulons pas utiliser le contrôle dans le Xamarin website, car il implique le téléchargement de beaucoup de code JavaScript (?), Ce qui rend la taille de l'application plus grande, et ne supporte pas non plus de pincer l'écran pour zoomer. Nous voulons utiliser le lecteur pdf par défaut du système d'exploitation.

Merci.

Répondre

0

Méthode 1:

Définissez l'action de construction à BundleResource. Vous pouvez définir l'action de construction pour un fichier en cliquant avec le bouton droit sur ce fichier et en choisissant Action de construction dans le menu qui s'ouvre.
Créer un UIWebView et l'ajouter à une vue:

webView = new UIWebView (View.Bounds); 
View.AddSubview(webView); 

Chargez le fichier en utilisant des classes NSURL et NSURLRequest:

string fileName = "Loading a Web Page.pdf"; // remember case-sensitive 
string localDocUrl = Path.Combine (NSBundle.MainBundle.BundlePath, fileName); 
webView.LoadRequest(new NSUrlRequest(new NSUrl(localDocUrl, false))); 
webView.ScalesPageToFit = true; 

Méthode 2:

public void OpenFile (NSUrl fileUrl) 
{ 
    var docControl = UIDocumentInteractionController.FromUrl (fileUrl); 

    var window = UIApplication.SharedApplication.KeyWindow; 
    var subViews = window.Subviews; 
    var lastView = subViews.Last(); 
    var frame = lastView.Frame; 

    docControl.PresentOpenInMenu (frame, lastView, true); 
} 
+0

Merci pour la Aidez-moi. Il ne compile pas, et propose trois solutions: (1a) Complètement qualifier 'Webclient avec Data.Abstractions.WebClient, (1b) Qualifier complètement' Webclient avec Plugin.WebClient, (2) Générer type 'WebClient', et (3) Ajouter référence à 'System.dll ..' Lequel dois-je utiliser? – MrProgrammer

+0

Le code précédent ne fonctionne que sur un projet partagé, essayez-le maintenant @MrProgrammer –