【问题标题】:Phonegap Android "navigator.notification.activitystart()" in tablets平板电脑中的Phonegap Android“navigator.notification.activitystart()”
【发布时间】:2012-10-18 14:06:16
【问题描述】:

在我的 Android 应用程序中,我使用 Phonegap 的 navigator.notification.activitystart() 事件来显示 Activity 指示器。它在安卓手机和平板电脑上运行良好,但问题是当我触摸平板电脑的屏幕时,即使加载没有完成,加载程序也会消失。

如何防止使用javascript/jquery触摸屏幕时加载指示消失?

【问题讨论】:

    标签: javascript android jquery cordova phonegap-plugins


    【解决方案1】:

    不确定您是否可以单独使用 javascript 更改该实现。 PhoneGap 的工作方式是它将在原生 Android 代码中创建一个对象 ProgressDialog。我认为问题在于它在其构造函数中将 ProgressDialog 设置为可取消。如果您进入cordova源代码,您可以更改它,它应该为您的特定问题创建一个修复程序。

    Notification.java 第 250-255 行的源代码将第二个 true 更改为 false

    Notification.this.spinnerDialog = ProgressDialog.show(cordova.getActivity(), title, message, true, true/*change this to false*/,
                            new DialogInterface.OnCancelListener() {
                                public void onCancel(DialogInterface dialog) {
                                    Notification.this.spinnerDialog = null;
                                }
                            });
                }
    

    【讨论】:

    • 感谢您的回复,但我没有notification.java。我要创建一个新的吗?如果我这样做并编写您给出的代码,我必须在我的 javascript 文件中调用哪个方法,现在我在发送 ajax 请求时调用 navigator.notification.activitystart() 并调用 navigator.notification.activitystop()当ajax请求停止时。我怎样才能用你的代码做到这一点?
    • 好吧,你可以开始使用源代码而不是导入 phonegap 库,或者只是为 phonegap 创建一个简单的插件,它可以创建一个你想要的微调器。要创建插件,只需查看现有的 cordova 插件,并可能会蚕食他们的一些代码。这是该插件源代码的链接。 github.com/apache/incubator-cordova-android/blob/master/…
    • 是的,我可以将该插件添加到我的项目中,然后如何在我的 javascript 中应用它。目前我有这个: $(document).bind("ajaxSend", function() { navigator.notification.activityStart(Title,"Loading.."); }).bind("ajaxStop", function() { navigator .notification.activityStop(); }).bind("ajaxError", function() { navigator.notification.activityStop(); });我现在该如何修改?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    • 2011-12-25
    • 1970-01-01
    • 2012-01-19
    • 1970-01-01
    • 2019-04-14
    相关资源
    最近更新 更多