Cordova Cleaver をアプリ内のサブビューとして使用するアプリを作成しています。アプリの状態によっては、ビューの下部にツールバーが表示される場合があります。ツールバーを非表示にすると、Cordova ビューのサイズが大きくなり、ビュー全体 (上部のステータス バーを除く) が表示されます。これは、Webview を再利用して任意の場所からコンテンツを表示し、それらのページがそれをサポートしている場合、特にアプリ API を実装している場合に Cordova ネイティブ機能を提供する可能性があるためです。
完全な開示、MonoTouch を使用しているのは、これらがクロス プラットフォームで使用したい大規模で複雑なビジネス ロジックだからですが、ビューとその作成方法に関しては、iOS ライブラリのみを使用しています (monotouch を使用)。 C# ラッパー) を使用しますが、これにより問題が発生することはありません。
わかりやすくするために、ツールバーを含む AppViewController と、WebViewController (CDVViewController のサブクラス) があります。ツールバーは、お気に入りの追加やメイン アプリ ページへの戻りなど、ネイティブ アプリの一部の機能を許可するために使用されます。
これはうまく機能しているように見えますが、1 つの特定のケースで (少なくともこれまでのところ) 問題があります。Cordova の camera.getPicture コマンドを実行すると、ステータス バーは非表示になりますが、カメラ ビューはステータス バーのスペースが上部にある状態で配置されているように見え、キャンセル ボタンが表示されません。iPhone では、カメラ ボタンを押すかキャンセルすると、このビューの下にあるツールバー ボタンも呼び出されるようです。.
この問題を克服するために、CDVCamera をサブクラス化し、TakePicture、DidCancelImagePicker、DidFinishPickingMediaWithInfo、DidFinishPickingImage メソッドをオーバーライドして、写真撮影タスクを開始したときに、ステータス バーとツールバーを非表示にし、WebViewController のビューのサイズを変更し、それらが事実上唯一のビューになるように、関連付けによる WebView。これは機能しましたが、関連する別のバグが発生し始めました。カメラ ピッカーは最初は問題なく表示されますが、ピッカーをキャンセルして (ランドスケープで) 再度呼び出すと、散発的にピッカーの右側に大きな黒いセクションが表示されます。この状態では、好きなように回転させることができますが、それでも正方形として表示されます。キャンセルしてポートレートで開くと 100% 成功するようですが、. このビュー内でカメラ ビューをヒットすると、問題なく写真が撮れるように見えますが、ご覧のとおり、カメラ ピッカーが画像のサブセクションにズームインしているように見えます。.
Holly Schinsky によるEmbed Cordova/PhoneGap as a Subview in your Native iOS Applicationに基づいて取り組みを試みましたが、おそらく間違った方法で何かを行っているか、設定が不足しているか、またはもっと良い方法がありますこれをしている。
どんな助けでも大歓迎です。
追加の有用な情報:
- 今のところ Cordova 2.4.0 を使用していますが、2.3.0 と 2.7.0 を試してみましたが、問題は変わらないように見えました。