2017-12-07 11 views
0

이 앱은 내 앱에서 PDF 파일을 열 때이 guide을 사용하고 있습니다. 내가 원하는 것은 내가 '공유'를 누르면 파일 (pdf)을 열 수있는 앱 목록에서 내 앱을 보는 것입니다. 지금까지는 내 iOS 프로젝트가 작동하므로 안드로이드 설정 문제입니다.xamarin 형식 안드로이드는 내 앱 (표시 안 함)과 함께 pdf를 열어야합니다.

MainActivity :

[Activity(Label = "Test", Icon = "@drawable/icon", Theme = "@style/MyTheme", MainLauncher = true)] 
[IntentFilter(
    new[] { Intent.ActionView }, 
    Categories = new[] 
    { 
     Intent.CategoryDefault, 
     Intent.CategoryBrowsable, 
    }, 
    DataScheme = "file", 
    DataMimeType = "*/*", 
    DataPathPattern = ".*\\.pdf" 
)] 

public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity 
{ 
    protected override void OnCreate(Bundle bundle) 
    { 
     TabLayoutResource = Resource.Layout.Tabbar; 
     ToolbarResource = Resource.Layout.Toolbar; 

     base.OnCreate(bundle); 

     string action = Intent.Action; 
     string type = Intent.Type; 

     global::Xamarin.Forms.Forms.Init(this, bundle); 

     var application = new App(); 

     if (Intent.ActionView.Equals(action) && !String.IsNullOrEmpty(type)) 
     { 
      Android.Net.Uri fileUri = Intent.Data; 

      if (fileUri != null) 
      { 
       var fileContent = File.ReadAllBytes(fileUri.Path); 
       var name = fileUri.LastPathSegment; 
       application.SetExternDocument(new IncomingFile() 
       { 
        Name = name, 
        Content = fileContent 
       }); 
      } 
     } 

     LoadApplication(application); 
    } 
} 

및 Manifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
android:versionCode="1" 
android:versionName="1.0" 
package="com.bbinternational.inviofatture.BBInvioFatture"> 

<uses-sdk android:minSdkVersion="21" /> 

<uses-permission android:name="android.permission.CAMERA" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 

당신은 내가 주요 활동에 속성을 사용하기 때문에 매니페스트에 아무것도 쓰지 않았다 볼 수 있듯이. manifest를 사용하려고했지만 Xamarin을 사용하여 MainActivity android : name 속성을 검색 할 수 없습니다 (런타임에 임의의 값을 할당하거나 최소한 내가 아는 것입니다).

도움 주셔서 감사합니다.

건배!

+0

이 코드를 실행하십시오'Device.Openuri (new uri (file));'. 나는 당신을 돕거나이 링크를 보길 바랍니다 :'https : // forums.xamarin.com/discussion/25746/how-to-open-pdf-in-xamarin-forms' – pnet

답변

1

그래서 몇 시간 동안 인터넷 검색을 한 후에이 친구가 나를 구해 냈습니다. 내가 생각으로

https://codemilltech.com/sending-files-to-a-xamarin-forms-app-part-2-android/

는 IntentFilterAttributes 잘못이었다. 이것은 올바른 버전입니다

[IntentFilter(new[] { Intent.ActionSend }, Categories = new[] { Intent.CategoryDefault }, DataMimeType = @"application/pdf")] 

누군가를 도울 수 있기를 바랍니다.