我们正试图在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#executescript 和 https://github.com/apache/cordova-plugin-inappbrowser/blob/dev/doc/index.md#insertcss
仍在制定可行的解决方案。
答案 0 :(得分:11)
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进行测试)并提交补丁或查看是否有“正确”的方法来执行此操作。
答案 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" />