2014-04-01 2 views
4

iOS 버전의 Cordova 3.4에서 InAppBrowser의 인스턴스를 시작할 때 웹 페이지가로드되는 표시기를 표시하려고합니다.InAppBrowser가 iOS 버전의 Cordova를 시작할 때 로딩 스피너/표시기를 표시하는 방법

안드로이드는 하단의 스피너로 잘 작동하지만 iOS는 페이지가 갑자기 튀어 나올 때까지 흰색 화면 만 보여줍니다.

우리는 처음에 이벤트 리스너를 사용하여에 찾고 :

https://github.com/apache/cordova-plugin-inappbrowser/blob/dev/doc/index.md#addeventlistener

가에 Loadstart 및 loadstop과 appbrowser 창에서 로딩을 보여 JS/CSS를 추가 듣고

https://github.com/apache/cordova-plugin-inappbrowser/blob/dev/doc/index.md#executescripthttps://github.com/apache/cordova-plugin-inappbrowser/blob/dev/doc/index.md#insertcss

아직 실행 가능한 솔루션을 찾고 있습니다.

답변

11

iOS InAppBrowser 객체에는 자동으로 Webview에 추가되는 자체 회 전자가 있습니다.

그러나 회 전자가 UIActivityIndicatorViewStyleWhite로 만들어지고 웹보기의 배경이 흰색이므로 볼 수 없습니다.

그래서 나는과 같이이 업데이트 :

self.spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 

또한, 회 전자의 프레임의 x 좌표는 아이폰보기의 경계 밖에. 이 문제를 해결하기 위해 프레임을 다음과 같이 업데이트했습니다 :

self.spinner.frame = CGRectMake(self.view.frame.size.width/2 - 10, self.view.frame.size.height/ 2 - 10, 20, 20); 

사용중인 장치의 크기에 관계없이 스피너의 중심에 위치해야합니다.

나는 이것을 인물 모드에서만 테스트했습니다.

Cordova를 포크 화 (3.4로 테스트 중)하고 패치를 제출하거나 "적절한"방법이 있는지 확인하십시오.

+0

아주, 아주 멋진 가 풀을 제출 수행

고쿠하여 설명 회색 스피너를 얻을 수있는 기본 InAppBrowser 플러그인의 장소에서 폰갭 빌드 프로젝트에 config.xml 파일이 추가 코르도바 사람들에게 요청하십시오 이것은 내 하루, 성미, 주 및 달을 절약합니다 :) – psimons

+0

잊어 버렸습니다 : 그것은 IOS 시뮬레이터에서 테스트 가능한 모든 해상도의 초상화와 사용 가능한 물리적 장치에서 작동합니다. 잘 했어! – psimons

+0

실례지만, 실제로 이러한 변경을해야 할 곳에 익숙하지 않은 분은 알려주십시오. 나는 이오닉을 사용 중이며 Xcode에서 이것을 변경했다고 추측하고 있지만 정교하게 표현할 수 있습니까? – Nikola

0

Phonegap Build를 사용하는 다른 사용자는 내 퍼블릭 플러그인을 사용하여 이러한 변경 사항을 구현하고 iOS에서와 같이 로딩 표시기 (회 전자)를 표시 할 수 있습니다.

<gap:plugin name="com.cordova.plugin.inappbrowser.with.loading.spinner" version="1.0.2" />

+0

스피너가 인물과 풍경의 중앙에 위치하도록 약간의 변경을해야했습니다 (이전에는 세로보기에서만 중앙에 위치). 따라서 최신 버전을 사용하여 스피너가 두 방향으로 가운데에 오도록하십시오. 코드는 아래에 제공됩니다 (config.xml에 추가). ' –