2017-03-13 8 views
1

iOSデバイスで既存のPDFファイルを開こうとしています。 このファイルは、デフォルトのPDFリーダーで開く必要があります。iOSでPDFファイルを開くには?

この時点では、「依存サービス」を使用してネイティブコードを実行しています。

このコードを実行すると、何も起こりません(ファイルのみが書き込まれます)。

答えて

2

標準のUIViewControllerを使用し、パス(ここでpdfがデバイスに保存されている場所)をコントローラに渡し、UIWebviewにロードしました。

public class PdfController : UIViewController 
{ 
    public PdfController(string pdfPath) 
    { 
     NavigationItem.LeftBarButtonItem = new NavBarButton("Back", (sender, args) => 
     { 
      NavigationController.PopViewController(true); 
     }); 

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

     webView.LoadRequest(new NSUrlRequest(new NSUrl(pdfPath, false))); 
     webView.ScalesPageToFit = true; 
    } 
} 

しかし、あなたが最初にそれをダウンロードし、このsnippitあなたはPDFをダウンロードして保存できるようになります。このコントローラ にそれを渡す必要があります。

Public void DownloadPDF() 
{ 
     Utility.AddNetworkConnection(); 
     var webClient = new WebClient(); 

     loadingView = new LoadingView(); 
     loadingView.Show("Downloading PDF"); 

     webClient.DownloadDataCompleted += (s, e) => 
     { 
      Utility.RemoveNetworkConnection(); 
      File.WriteAllBytes(_pdfPathLocation, e.Result); // writes to local storage 

      InvokeOnMainThread(() => 
      { 
       loadingView.Hide(); 
       _pdfImageElement.SetValueAndUpdate("Open PDF"); 
       var a = new UIAlertView("Done", "File downloaded and saved", null, "OK", "Open PDF"); 
       a.Show(); 

       a.Clicked += OpenPdf; 
      }); 
     }; 

     var url = new Uri(_wreck.PdfURL); 
     webClient.Encoding = Encoding.UTF8; 
     webClient.DownloadDataAsync(url); 
} 
+0

ファイルは現在存在します。 – Nyxero

+0

先頭スニペットpdfPathは、電話機のファイルの場所です。ダウンロードしたPDFが開きます – InitLipton

関連する問題