1

PDFを表示してiBooksに保存し、メールして印刷するアプリを作成しようとしています。現在、次のコードを使用しています。

            if (UIDevice.CurrentDevice.CheckSystemVersion(6, 0))
            {
                AppDelegate appDelegate = (AppDelegate)UIApplication.SharedApplication.Delegate;
                 //url to local PDF
                var items = new NSObject[] { NSData.FromFile(_pdfUrl) };
                var activityController = new UIActivityViewController(items, null);
                activityController.ExcludedActivityTypes = new NSString[]
                { 
                    UIActivityType.AssignToContact, 
                    UIActivityType.Message,
                    UIActivityType.PostToFacebook,
                    UIActivityType.PostToTwitter,
                    UIActivityType.PostToWeibo,
                    UIActivityType.CopyToPasteboard,
                    UIActivityType.SaveToCameraRoll
                };

                PresentViewController(activityController, true, null);
            }

ボタンを押してこのコードを実行すると、viewcontroller が表示されますが、メールと印刷のみです (iBooks を搭載したデバイスでテスト済み)。私の質問は次のとおりです。「iBooks で開く」は自分で追加する必要がありますか? それとも私は何か間違ったことをしていますか?

もう 1 つの質問は、iOS5 で同じことを行う場合、UIDocumentInteractionController を使用することです。

                UIDocumentInteractionController doc = UIDocumentInteractionController.FromUrl(new NSUrl(_pdfUrl, false));
                doc.WeakDelegate = this;
                doc.PresentOptionsMenu(btn.Frame, this, true);

しかし、何も起こりませんでした (iPhone シミュレーター、iOS 5 のデバイスを持っていません)。別の投稿で、iBooks がデバイスに搭載されていなければ何も起こらないと誰かが言っていました。しかし、メールと印刷はどうでしょうか?

誰かがこれについて私を助けることができますか?

前もって感謝します

編集:

iOS 6 でこのコードを使用すると、完全に機能します。

            UIDocumentInteractionController doc = UIDocumentInteractionController.FromUrl(new NSUrl(_pdfUrl, false));
            doc.WeakDelegate = this;
            doc.PresentOptionsMenu(btn.Frame, this, true);

編集:

UIDocumentInteractionController を使用して、iOS5 でメールと印刷を表示する方法を探しています。アイデアはありますか?

4

1 に答える 1

1

UIActivityTypeこれは、iBooks 用の組み込み定数がないためです。

UIActivityただし、独自のプロバイダーを作成するのは非常に簡単です。AirPlay 用に C# で作成したもの ( githubで入手可能) をベースとして使用できます。

最初に、iBook が利用可能かどうかを検出します (オーバーライドするためCanPerform)。「ibooks://」プレフィックスを使用してこれを確認できるようです (その方が簡単なはずです) 次に、ドキュメントを開いてアイコンを指定します。

これを避けることをお勧めします:

var items = new NSObject[] { NSData.FromFile(_pdfUrl) };

PDF の大きさがわからないため (デバイスの使用可能なメモリよりも大きくなる可能性があります)、URL でのみ機能します。

于 2013-10-23T20:10:37.327 に答える