2014-04-01 62 views
4

我們試圖顯示在iOS版本的Cordova 3.4上啓動InAppBrowser實例時網頁正在加載的指示器。如何在InAppBrowser爲iOS版本的Cordova啓動時顯示加載微調器/指示器

Android在底部的微調器上正常工作,但iOS只顯示一個白色屏幕,直到頁面突然彈出。

我們最初尋找到使用事件偵聽器:

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

聽loadstart和loadstop並添加JS/CSS的appbrowser窗口中顯示加載

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中。

但是,由於微調器是作爲UIActivityIndi​​catorViewStyleWhite創建的,並且webview的背景是白色的,所以您看不到它。

所以我更新了這個像這樣:

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

此外,微調的框架的x座標是一個iPhone的視圖的邊界之外。爲了解決這個問題我更新了框架:

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

這應該居中微調無論你使用何種尺寸的設備。

我只在肖像模式下測試過。

你可能想要叉科爾多瓦(我正在測試這與3.4),並提交補丁或看看是否有一個「正確的」方式來做到這一點。

+0

非常,非常真棒 不要提交pull請求科爾多瓦人pronto 這節省了我的一天,脾氣,周和月:) – psimons

+0

忘記:它可以在IOS模擬器的可測試的每個分辨率的肖像以及可用的物理設備。幹得好! – psimons

+0

請原諒我的無知,但請您更新我們誰不熟悉實際進行這些更改的位置?我正在使用Ionic,並假設您在Xcode中更改了這一點,但請您詳細說明一下嗎? – Nikola

0

對於使用Phonegap Build的任何人,您可以使用我的公共插件來實現這些更改,並使加載指示器(微調)在iOS中顯示。

這在你的PhoneGap構建項目到位默認InAppBrowser插件添加到您的config.xml中度日悟空上述灰色微調:

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

+0

我必須進行一些小修改才能使微調器保持以縱向和橫向爲中心(以前僅以縱向視圖爲中心)。 因此,請使用最新版本來確保微調器在兩個方向都居中。代碼如下所示(添加到config.xml)。 '' –

相關問題