【问题标题】:How to show loading spinner / indicator when InAppBrowser launches for iOS version of Cordova当 InAppBrowser 为 iOS 版本的 Cordova 启动时如何显示加载微调器/指示器
【发布时间】:2014-04-01 23:58:07
【问题描述】:

我们正在尝试在 Cordova 3.4 的 iOS 版本上启动 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

仍在研究可行的解决方案。

【问题讨论】:

    标签: ios cordova inappbrowser


    【解决方案1】:

    iOS InAppBrowser 对象有自己的微调器,它会自动添加到 web 视图中。

    但是,由于微调器被创建为 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);
    

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

    我只在纵向模式下测试过。

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

    【讨论】:

    • 非常非常棒 请立即向 Cordova People 提交拉取请求 这可以节省我的一天、脾气、一周和一个月 :)
    • 忘记了:它可以在 IOS 模拟器以及可用物理设备中测试的每个分辨率下纵向工作。干得好!
    • 请原谅我的无知,但是您能否告诉我们这些不熟悉实际进行这些更改的地方的人?我正在使用 Ionic,并且假设您在 Xcode 中对此进行了更改,但您能详细说明一下吗?
    • 我不熟悉 Ionic,但这是在 iOS Cordova 插件 InAppBrowser 中。如果您使用的是 Cordova,那么如果尚未修复,您需要更新那里的代码吗?您在 XCode 中执行此操作,因此如果您正在使用它和 Cordova,请进入应用程序中的 Cordova 项目并找到此文件并进行此更改。
    • 我用我的修复创建了一个分叉和拉取请求。我们会等着看它是否被使用。
    【解决方案2】:

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

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

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

    【讨论】:

    • 我不得不做一些小的改变,使微调器在纵向和横向中保持居中(以前只在纵向视图中居中)。因此,请使用最新版本来确保微调器在两个方向上居中。下面提供了代码(添加到 config.xml)。 <gap:plugin name="com.cordova.plugin.inappbrowser.with.loading.spinner" version="1.0.13" />
    猜你喜欢
    • 1970-01-01
    • 2021-01-16
    • 1970-01-01
    • 2013-04-10
    • 1970-01-01
    • 1970-01-01
    • 2020-01-05
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多