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

我们正试图在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)

2 years ago

iOS InAppBrowser对象具有自己的微调器,它会自动添加到webview中 .

但是,由于微调器创建为UIActivityIndicatorViewStyleWhite,并且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测试它)并提交补丁或查看是否有“正确”的方法来执行此操作 .

2 years ago

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

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

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