Vince Parsons(および他の人)からの素晴らしい助けを借りて、私はこの問題を解決しました。
PhoneGapプラグインを使用すると、JavaScript呼び出しを作成/公開でき、Objective-cで処理されます。
必要な2行(はい、2行だけです!)とそれに続く説明は次のとおりです。
self.docInteractionController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:myDocumentPath]];
[self.docInteractionController presentOpenInMenuFromRect:CGRectMake(0,100,1,1) inView:UIApplication.sharedApplication.keyWindow animated:YES];
説明
入力はファイルの場所になります。私の場合、それはアプリのサンドボックス内にあるので、次のようになります。
/var/mobile/Applications/B16-HU83-GU1D-1D3NT1F13R/Documents/DocumentToExport.pdf
外部URLを使用したい場合は、(調整して)使用できますが、私の目的では内部URLでした。
したがって、ファイルの場所を入力として(入力変数を呼び出しましょうmyDocumentPath
)、ドキュメントコントローラーを宣言する必要があります。
self.docInteractionController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:myDocumentPath]];
これにより、変数を必要とするUIDocumentInteractionController
usinginteractionControllerWithURL
メソッドが作成されます。メソッドを使用してその変数NSURL
を作成し、それをに渡します。NSURL
fileURLWithPath
myDocumentPath
presentOpenInMenuFromRect
次の行は、長方形とビューポートをとる次の行を呼び出します。
[self.docInteractionController presentOpenInMenuFromRect:CGRectMake(0,0,1,1) inView:UIApplication.sharedApplication.keyWindow animated:YES];
長方形は、幅と高さが0,0(GCRectMake(0,0,1,1)
)の位置0,0に作成され、ビューポートはPhoneGapアプリケーションから取得されます。UIApplication.sharedApplication.keyWindow
これを修正するのに2行のコードしかかからなかったことに、私は喜びと驚きを感じています。確かに、JavaScriptだけでそれを行う方法はありませんが、それでもかなりエレガントで、うまく機能します。