PhoneGap Build アプリケーションを開発していますが、Adobe Reader でローカル ファイルを開くようにユーザーに促す方法が必要でした (私の状況では inAppBrowser は機能しません)。必要なことを実行する PhoneGap 用のサードパーティ製プラグインを見つけました。ただし、リモートの .pdf ファイルに対してのみ実行します。プラグイン コードを変更して iPad/iPhone 上のローカル ファイルを操作する方法を見つけましたが、ユーザーが Adobe Reader で PDF を開くとアプリケーションが閉じてしまうようです。
Objective C、Xcodeなどについてはほとんど何も知りません。
望ましい機能は次のとおりです。
- ユーザーがファイルを検索または参照してアプリをナビゲートする
- 目的のファイルを検索
- ファイルを選択
- ユーザーには「開く」オプションが表示され、そのうちの 1 つは Adobe Reader です。
- ユーザーが Adobe を選択すると、PDF が開きます
- ユーザーはアプリを離れた場所に戻ります
アプリが閉じているように見える上記のステップ 6 を除いて、すべて動作しています。ホームボタンを 2 回押すとアプリが iPad の下部に表示されますが、選択したアプリが閉じた状態から起動してスプラッシュ画面が表示されます。ユーザーが残した場所に置きたいです。
関連するコードは
NSURL *fileURL = [NSURL fileURLWithPath:localFile];
UIDocumentInteractionController *controller = [UIDocumentInteractionController interactionControllerWithURL:fileURL];
[controller retain];
controller.delegate = self;
controller.UTI = uti;
CDVViewController* cont = (CDVViewController*)[ super viewController ];
//CGRect rect = CGRectMake(0, 0, cont.view.bounds.size.width, cont.view.bounds.size.height);
CGRect rect = CGRectMake(0, 0, 1024, 768);
[controller presentOpenInMenuFromRect:rect inView:cont.view animated:YES];
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString: @""];
[self writeJavascript: [pluginResult toSuccessCallbackString:callbackID]];
[callbackID release];
[path release];
[uti release];
この行のどこに
[controller presentOpenInMenuFromRect:rect inView:cont.view animated:YES];
Adobe を選択するようにユーザーに促します。ユーザーが Adobe で PDF を開くことを選択したときに、アプリケーションをシャットダウンしないようにここで渡すことができるパラメーターはありますか?
ありがとう!
私が元の状態で変更したプラグインは、ここで見つけて議論することができます: http://www.tricedesigns.com/2012/08/15/open-with-in-ios-phonegap-apps/