添加加载指示器/进度条到 Phonegap Android 闪屏
我有一个 PhoneGap 1.4.1 / jQueryMobile 1.0.1 / Android 项目,它显示 res/drawable/splash.png 很好,一旦加载 WebView,闪屏就会消失。
我想在启动画面中添加某种进度指示器百分比文本,但到目前为止尚未成功。
我过去通过使用普通的 webview 取得了成功,如下所示:
myWebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
myLoadingView.setVisibility(View.GONE);
myWebView.setVisibility(View.VISIBLE);
}
});
myWebView.loadUrl(...);
但所有这些都只是一个带有进度指示器文本和背景图像的布局,该布局将更新为:
myWebView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
myLoadingView.setText(progress+"%");
}
});
有谁知道如何将此功能添加到现有的 PhoneGap 实现,或者知道如何用我自己的实现替换 PhoneGap 实现?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我想我已经找到了一个解决方案(不是完整的解决方案,而是一个旋转解决方案)。在 DroidGap 子类中,您应该添加以下行:
这是我的完整示例
您可以在本节中设置几个属性,请参阅此代码: https://svn.apache.org/repos/asf/incubator/callback/phonegap-android/branches/WebSockets/framework/src/com/phonegap/DroidGap.java
I think I've found a solution (not a full solution, but a spinner solution). Inside DroidGap subclass you should add this line:
Here is my full example
There are several properties you could set up in this section, please see this code: https://svn.apache.org/repos/asf/incubator/callback/phonegap-android/branches/WebSockets/framework/src/com/phonegap/DroidGap.java
我终于成功地向 PhoneGap webView 添加了一个进度条,它将显示页面加载的进度(百分比)。希望这对您有帮助
正如另一个答案解释的,
appView
位于LinearLayout内
。受保护的(因此继承的)变量 root 引用此 LinearLayout 。您可以将您的(任何)本机View
添加到此变量中。这是我的做法:
在 res/layouts/ 中创建布局
按照添加 WebView 进度条通常遵循的所有步骤进行操作:
添加您创建的布局:
如果在调用
super.loadURL(...);
之后添加它,它将显示在底部。如果您之前添加,布局将显示在appView之前。之后您只需添加以下内容:
干杯!
I finally managed to add a progress bar to a PhoneGap webView which will show the progress (percentage) of the page load. Hope this helps you
As this other answer explains,
appView
is located inside aLinearLayout
. The protected (and therefore inherited) variable root references thisLinearLayout
. You can add your (whatever) nativeView
s to this variable.Here is how I did:
Create a layout in your res/layouts/
Follow all the steps you would normally follow for adding a WebView progress bar:
Add the layout you created:
If you add it after calling
super.loadURL(...);
it will be displayed at the bottom. If you add it before, the layout will be displayed before the appView.After that you simply add this:
Cheers!
我知道您可以通过在 PhoneGap 配置文件(iOS 上的 PhoneGap.plist)中将
ShowSplashScreenSpinner
选项设置为 YES 来轻松地将加载指示器添加到启动屏幕中。它会在启动屏幕中间显示一个微调器当应用程序加载时
编辑:这只适用于 iOS。
I know you can easily add a loading indicator to your splash screen by setting the
ShowSplashScreenSpinner
option to YES in your PhoneGap configuration file (PhoneGap.plist on iOS)It shows a spinner in the middle of the splash screen while the app is loading
Edit: This only works with iOS.
停止使用扩展 DroidGap 的 Activity,创建常规 Android Activity 并将 org.apache.cordova.CordovaWebView 放入布局文件中。它会给你更多的灵活性。
http://docs.phonegap.com/en/2.2.0/guide_cordova-webview_android.md.html#Embedding%20Cordova%20WebView%20on%20Android
Stop using a Activity that extends DroidGap, create a regular Android activity and put org.apache.cordova.CordovaWebView in a layout file. It will give you much more flexibility.
http://docs.phonegap.com/en/2.2.0/guide_cordova-webview_android.md.html#Embedding%20Cordova%20WebView%20on%20Android
如果您使用 jquery-mobile 您可以执行以下操作:
然后在 onProgressChanged 中执行以下操作:
If you use jquery-mobile you can do:
Then in onProgressChanged do: