Ti.Media.showCamera 의 버그 일까요 ?

안녕하세요 ! 간만에 찾아뵙습니다.
오늘도 개발하다가 의문이 드는 이슈를 들고 왔습니다 ㅠ
선배님들의 많은 조언 부탁 드립니다.

이번엔 카메라 연동을 하던 도중에 생긴 일 입니다.
간단하게 구조를 설명하면, A 컨트롤러에서 B 컨트롤러(window)를 호출하며 Callback 함수를 같이 넘겨줍니다. B 컨트롤러에서 처리를 완료하고 A 컨트롤러로 Callback 함수에 결과를 전달하며 Close 합니다. 전달 받은 결과를 바탕으로 A 컨트롤러가 Ti.Media.showCamera 를 호출하여 카메라를 작동시킵니다. 이후 success 와 cancel, error 로 결과가 호출됩니다.

구조는 위와 같습니다만, IOS 는 문제없이 작동합니다 !
안드로이드는 마지막에 카메라를 촬영 후, success든 cancel, error로 결과를 전달하질 않습니다 ㅠ
왜 그럴까요…? 네이티브의 액티비티 라이프사이클 때문일까 고민중입니다만… 아직 해결이 되지 않습니다.

또 다른 이슈로, dp 를 사용해서 레이아웃을 짰습니다. 안드로이드는 모든 레이아웃이 폰의 크기에 맞춰서 자동으로 조절되어 맞춰졌습니다만, 아이폰6와 아이폰6플러스가 서로 레이아웃이 상이합니다 !!
아이폰에서는 공간이 부족하고… 아이폰6플러스에서는 여백이 남네요.

혹시 비슷한 사례가 있으셨던 분이 있으시면 조언 부탁 드립니다.감사합니다 !

자답입니다.

  1. Android Activity Life Cycle 의 이슈로 판단됩니다. A액티비티 > B액티비티 > A액티비티 > 카메라 호출 구조였는데, B액티비티가 카메라의 Result를 받는 경우가 생겼습니다. 때문에 Destroy 된 이후에 호출하도록 했습니다.

  2. CSS 에서 platform 조건을 주는 것과 같이 특정 태그로 조건을 걸 수가 있습니다.

2 Likes

해결하셔서 다행이네요.
요새 연말이라 너무 바빠서 글을 보고도 오래 고민하지 못해서 답을 못달았어요. 죄송합니다.

자답 감사합니다. :thumbsup: