2017-11-09 5 views
0

파일 시스템에서 pdf 파일을 열어야합니다. 파일 경로를 가져 오는 방법을 알고 있지만 내 아이폰이 파일을 열 수 없습니다. 여기 FileWorkerXamarin 양식 IOS 오픈 PDF

using Xamarin.Forms; 
using IdokladX.Services; 
using UIKit; 
using Foundation; 
[assembly: Dependency(typeof(IdokladX.iOS.Services.PdfViewer))] 
namespace IdokladX.iOS.Services { 
public class PdfViewer:IPdfViewer { 

    public void OpenPdf(string filename) 
    { 
     FileWorker fl = new FileWorker(); 

     if (fl.Exists(filename)) 
     { 
      string strPfad = fl.GetFilePath(filename); 

      var viewer = UIDocumentInteractionController.FromUrl(NSUrl.FromFilename(strPfad)); 
      var controller = GetVisibleViewController(); 
      viewer.PresentOpenInMenu(controller.View.Frame, controller.View, true); 
     } 
    } 
    private UIViewController GetVisibleViewController(UIViewController controller = null) 
    { 
     controller = controller ?? UIApplication.SharedApplication.KeyWindow.RootViewController; 

     if (controller.PresentedViewController == null) 
      return controller; 

     if (controller.PresentedViewController is UINavigationController) 
     { 
      return ((UINavigationController)controller.PresentedViewController).VisibleViewController; 
     } 

     if (controller.PresentedViewController is UITabBarController) 
     { 
      return ((UITabBarController)controller.PresentedViewController).SelectedViewController; 
     } 

     return GetVisibleViewController(controller.PresentedViewController); 
    } 
    } 
} 

저장/삭제/존재하는 경우 파일을 검사하는 메소드를 포함하는 클래스입니다 :

는 다음 코드 렌더러를 사용합니다. 무엇이 잘못 되었나요? Info.plist 파일에 파일 형식 PDF도 추가했습니다.

enter image description here

잘못 무엇입니까? 나에게 WebView를 사용하도록 조언하지 마라. 다른 프로그램을 통해 pdf 파일을 열어야한다.

+0

'PresentOpenInMenu()'를 트리거 할 때 팝업이 없다는 것을 의미합니까? 다른 응용 프로그램에서 pdf 파일을 열 수 있습니까? –

+0

다른 pdf 뷰어 응용 프로그램을 설치 한 장치에서 테스트 할 수 있습니다. –

+0

@ 케빈의 조언에 감사드립니다! 물론 시뮬레이터 6에는 pdf 뷰어 앱이 없지만 사파리가 있습니다 ... 여는 것이 맞을 것 같습니까? – ManOfWar

답변

1

참조 :

presentOpenInMenu(from:in:animated:)에 대한 설명서를 참조하십시오

문서를 열어 지원 등록 된 응용 프로그램이없는 경우, 문서 상호 작용 컨트롤러는 메뉴가 표시되지 않습니다.

솔루션 :

테스트 "열기 ..."당신의 장치pdf 파일 (예 북스, 메모, 크롬 등등과 같은 열 수있는 응용 프로그램이 거기에 있는지 확인 에). 그렇지 않으면 메뉴가 표시되지 않습니다.

주의 사항 :

당신은 당신의 파일을 열 때 다른 응용 프로그램을 필요로하는 경우, PDF의 Document Type을 추가 할 필요가 없습니다. Document Type은 다른 앱이 presentOpenInMenu을 트리거 할 때 다른 앱의 파일을 열 수있는 "열기 ..."메뉴에 앱을 표시하는 데 사용됩니다.

+0

@ManOfWar, 내 대답이 도움이된다면 받아 들일 수 있습니까? 나에게 중요하다! 감사! –