사용자 정의 렌더러를 사용하지 않고 xamarin 양식을 사용하여 PDF 파일을 볼 수있는 방법이 있습니까?Xamarin Forms를 사용하여 PDF 파일을 보는 방법
3
A
답변
5
안드로이드 :
public void OpenPdf(string filePath)
{
Android.Net.Uri uri = Android.Net.Uri.Parse("file:///" + filePath);
Intent intent = new Intent(Intent.ActionView);
intent.SetDataAndType(uri, "application/pdf");
intent.SetFlags(ActivityFlags.ClearWhenTaskReset | ActivityFlags.NewTask);
try
{
Xamarin.Forms.Forms.Context.StartActivity(intent);
}
catch (Exception)
{
Toast.MakeText(Xamarin.Forms.Forms.Context, "No Application Available to View PDF", ToastLength.Short).Show();
}
}
아이폰 OS, 좀 더 복잡하고 requiries 몇 가지 추가 클래스 :
public void OpenPDF(string filePath)
{
FileInfo fi = new FileInfo(filePath);
QLPreviewController previewController = new QLPreviewController();
previewController.DataSource = new PDFPreviewControllerDataSource(fi.FullName, fi.Name);
UINavigationController controller = FindNavigationController();
if (controller != null)
controller.PresentViewController(previewController, true, null);
}
private UINavigationController FindNavigationController()
{
foreach (var window in UIApplication.SharedApplication.Windows)
{
if (window.RootViewController.NavigationController != null)
return window.RootViewController.NavigationController;
else
{
UINavigationController val = CheckSubs(window.RootViewController.ChildViewControllers);
if (val != null)
return val;
}
}
return null;
}
private UINavigationController CheckSubs(UIViewController[] controllers)
{
foreach (var controller in controllers)
{
if (controller.NavigationController != null)
return controller.NavigationController;
else
{
UINavigationController val = CheckSubs(controller.ChildViewControllers);
if (val != null)
return val;
}
}
return null;
}
public class PDFItem : QLPreviewItem
{
string title;
string uri;
public PDFItem(string title, string uri)
{
this.title = title;
this.uri = uri;
}
public override string ItemTitle
{
get { return title; }
}
public override NSUrl ItemUrl
{
get { return NSUrl.FromFilename(uri); }
}
}
public class PDFPreviewControllerDataSource : QLPreviewControllerDataSource
{
string url = "";
string filename = "";
public PDFPreviewControllerDataSource(string url, string filename)
{
this.url = url;
this.filename = filename;
}
public override QLPreviewItem GetPreviewItem(QLPreviewController controller, int index)
{
return new PDFItem(filename, url);
}
public override int PreviewItemCount(QLPreviewController controller)
{
return 1;
}
}
그들을 얻을 수있는 종속성 서비스를 사용하고 필요에 따라, 저를 위해 아주 잘 작동 호출합니다. PDFItem 및 PDFPreviewControllerDataSource 클래스는 블로그에서 가져온 것입니다. 그 블로그는 저의 삶을 기억할 수는 없지만 그 이름은 내 작품이 아닙니다. https://developer.xamarin.com/recipes/cross-platform/xamarin-forms/controls/display-pdf/
: https://forums.xamarin.com/discussion/25746/how-to-open-pdf-in-xamarin-forms
3
지금이 커버하는 조리법이있다 :
UISharedApplication.KeyWindow.PresentViewController
당신이있어 정보를 찾을 수 있습니다 FindNavigationController는 귀하의 경우,처럼 간단 할 수있다 필요하지 않을 수도있다 편집 : 조리법은 사용자 지정 렌더러를 사용합니다. 그래도 사용자 지정 렌더러없이 작업 할 수 없다면 여전히 유용 할 수 있습니다.
관련 문제
- 1. jsp에서 pdf 파일을 보는 방법
- 2. Xamarin Forms를 사용하는 Android 위젯?
- 3. 링크를 클릭하면 브라우저에서 PDF 파일을 보는 방법
- 4. Xamarin Forms를 사용하여 Windows Phone에서 탐색 스택을 지우는 방법
- 5. MVVM Xamarin Forms를 사용하여 이미지 가시성을 처리하는 방법
- 6. DB에 저장된 PDF 파일을 보는 방법
- 7. Firefox에서 pdf 파일을 보는 방법 IDM
- 8. PDFBox의 PDFPagePanel을 사용하여 PDF 문서를 보는 방법
- 9. 릴리스 모드에서 Xamarin Forms를 사용한 이상한 렌더링
- 10. Xamarin Forms를 사용하여 Android에서 키보드가 빨리 숨겨지고 다시 나타납니다.
- 11. 서비스가 Xamarin Forms를 사용하여 데이터를 가져 오는 동안 이미지로드
- 12. Xamarin Forms를 사용하여 어떻게 뒤로 버튼 기능을 무시합니까?
- 13. Xamarin Forms를 사용하여 추측 항법 응용 프로그램 구현
- 14. mysql 데이터베이스에서 pdf 파일을 보는 PHP 코드
- 15. windows forms를 사용하여 .exe 파일을 실행하십시오.
- 16. 안드로이드리스트 뷰에서 parse.com에 저장된 PDF 파일을 다운로드하고 보는 방법
- 17. Xamarin - 양식의 FTP 서버에서 PDF 파일을 표시하는 방법
- 18. pdf.js를 구현하여 PDF 뷰어에서 PDF 파일을 보는 방법은 무엇입니까?
- 19. pdf 파일을 추가하고 페이지 기반 응용 프로그램에서 보는 방법
- 20. iframe에서 Google 드라이브의 PDF 링크를 보는 방법
- 21. SWT 브라우저를 사용하여 PDF 데이터 바이트를 보는 방법
- 22. FORMS를 사용하여 asp.net에서 역할을 관리하는 방법
- 23. 소스에서 Xamarin Forms를 컴파일하고 어셈블리를 사용하는 방법은 무엇입니까?
- 24. PDF 파일을 읽는 방법
- 25. 안드로이드 장치에서 이진 PDF 문서를 보는 방법
- 26. 레일을 사용하여 브라우저에서 문서 클립 docx 첨부 파일을 보는 방법
- 27. Xamarin 앱에 PDF 파일 표시
- 28. django inbuilt forms를 사용하는 방법?
- 29. 파일 경로를 인수로 사용하여 html로 파일을 미리 보는 방법
- 30. Xamarin Forms에서 그림자를 만드는 방법
'Device.OpenUri()'을 시도해보고 PDF의 로컬 URI를 전달하십시오. 이렇게하면 브라우저에서 PDF가 열리므로 (잘하면) 볼 수 있습니다. – Krumelur
이전에'Device.OpenUri()'을 시도했지만 작동했습니다 –
제안 해 주셔서 감사합니다.하지만 제 앱 요구 사항은 브라우저가 아닌 앱 내부에서 PDF 파일을 여는 것입니다. – Sonu