앱에서 하위보기로 Cordova Cleaver를 사용하는 앱을 만듭니다. 앱의 상태에 따라보기 하단에 툴바가있을 수 있습니다. 도구 모음을 숨기면 전체보기 (맨 위의 상태 표시 줄 빼기)가 걸릴 수 있도록 코르도바보기의 크기가 커집니다. 이는 Webview를 재사용하여 임의의 위치에있는 콘텐츠를 표시하고 코드가 지원되는 경우 코드가 기본 기능을 제공 할 수 있기 때문입니다 (특히 앱 API를 구현하는 경우).Phonegap/Cordova camera.getPicture가 하위보기에 배치되면 이상하게 작동합니다.
전체 공개, MonoTouch는 크로스 플랫폼을 사용하고자하는 크고 복잡한 비즈니스 논리이기 때문에 MonoTouch를 사용하고 있습니다.하지만보기 측면에서 어떻게 만들어졌으며, iOS 라이브러리 만 사용하고 있습니다. (모노 터치 C# 래퍼 사용)하지만 문제가 발생하지 않아야합니다.
그래서 우리는 도구 모음과 WebViewController (CDVViewController의 하위 클래스)가 포함 된 AppViewController를 가지고 있습니다. 툴바는 즐겨 찾기를 추가하거나 기본 앱 페이지로 돌아가는 것과 같은 네이티브 앱의 일부 기능을 허용하는 데 사용됩니다.
이것은 잘 작동하는 것처럼 보였지만 한 가지 구체적인 경우에는 문제가 있습니다 (적어도 지금까지는). Cordova의 camera.getPicture 명령을 실행하면 상태 표시 줄이 숨겨 지지만 카메라보기는 여전히 상태 표시 줄 공간과 함께 맨 위에 배치되어 취소 버튼을 표시하지 않게됩니다. iPhone에서 카메라 버튼을 누르거나 취소하면이보기 아래의 툴바 버튼을 호출하는 것처럼 보입니다. .
이 문제를 극복하기 위해, 나는 TakePicture, DidCancelImagePicker, DidFinishPickingMediaWithInfo, DidFinishPickingImage 방법은, 우리가 테이크 사진 작업을 시작했을 때, 그것은 상태 표시 줄 및 도구 모음을 숨기거나 크기를 조절 할 수 있도록이 WebViewController의 CDVCamera는 서브 클래스 및 오버라이드 보기 및 WebView를 결합하여 효과적으로 볼 수 있도록합니다. 이것은 효과가 있었지만 다른 관련 버그를 경험하기 시작했습니다. 카메라 피커는 처음에는 완벽하게 괜찮 았지만, 피커를 취소하고 (가로에서 보았을 때) 다시 보일 경우 산발적으로 피커의 오른쪽에 큰 검은 색 섹션이 표시됩니다. 이 상태에있을 때 원하는 방식으로 회전 할 수 있으며 여전히 정사각형으로 표시됩니다. 초상화에서 취소하고 여는 것은 100 % 성공으로 작동하는 것처럼 보이지만 풍경에는 다양한 신뢰성이있는 것으로 보입니다. . 이보기 내에서 카메라보기를 누르면 사진을 찍은 것처럼 보이지만 보시다시피 카메라 선택 도구는 이미지의 하위 섹션에서 확대 된 것처럼 보입니다. .Holly Schinsky가 Embed Cordova/PhoneGap as a Subview in your Native iOS Application에 내 노력을 기울이기 위해 노력했지만, 잘못된 방식으로 뭔가를하고 있거나, 구성이 누락되어 있거나,이 작업을 수행해야하는 더 좋은 방법이 있습니다.
도움을 주시면 대단히 감사하겠습니다.
추가 유용한 정보 :
- 코르도바 2.4.0은 지금까지 사용하지만 2.3.0과 2.7.0 시도하고 문제가있는 다른 표시하지 않은거야 것입니다.
왜 당신이 코르도바 카메라 제어를 내장하는 대신 기본 카메라 API (또는 Xamarin.Mobile의 API)를 사용하고 있습니까? 이 접근 방식은 무엇을 얻게됩니까? – Jason
긴 이야기를 짧게하기 위해 HTML5 기반 애플리케이션이 이미 성숙했지만 일부 특정 유스 케이스를 사용하려면 해당 기능을 제공하기 위해 네이티브 앱으로 래핑 할 수 있어야합니다. Cordova를 사용하면 HTML5 기반 앱의 자바 스크립트에서 카메라를 호출 할 수 있습니다. –
내 카메라에서 동일한 문제가있는 코드 뷰어 뷰어로 AddChildViewController를 구현 한 코드를 표시 할 수 있습니다. –