如何在InAppBrowser为iOS版Cordova启动时显示加载微调器/指示器

时间:2014-04-01 23:58:07

标签: ios cordova inappbrowser

我们正试图在iOS版本的Cordova 3.4上启动InAppBrowser实例时显示网页正在加载的指示符。

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

仍在制定可行的解决方案。

2 个答案:

答案 0 :(得分: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);

无论您使用何种尺寸的设备,这都应该使微调器居中。

我只是在纵向模式下对此进行了测试。

你可能想要分叉Cordova(我用3.4进行测试)并提交补丁或查看是否有“正确”的方法来执行此操作。

答案 1 :(得分:0)

对于使用Phonegap Build的其他人,您可以使用实现这些更改的公共插件,并使加载指示符(微调器)在iOS中显示。

将其添加到Phonegap Build项目的config.xml中,代替默认的InAppBrowser插件,以获取Goku上面描述的灰色微调器:

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