【问题标题】:kendo UI mobile ListView hang after opening external link on native browser在本机浏览器上打开外部链接后,kendo UI mobile ListView 挂起
【发布时间】:2013-02-19 10:13:15
【问题描述】:

在 Kendo UI Mobile ListView 中,当单击链接时,会调用本地浏览器打开外部链接的脚本。

PhoneGap 脚本如下: 在安卓上: navigator.app.loadUrl(link, { openExternal:true } ); 在 iOS 上: window.open(link, '_system');

链接可以在对应的原生浏览器上打开。

但是,当用户从本机浏览器切换回应用程序时,会出现一些问题。

在Android上,屏幕挂在原来的视图上,当再次按下返回键时,屏幕解冻,可以刷新。

然而,在 iOS 上,屏幕也挂在原始视图上。在屏幕上点击时,会移动整个视图(带有布局)。无法解除冻结此屏幕。

如何解决此问题,以便在从本机浏览器切换回应用程序后屏幕可以取消冻结?

非常感谢您的帮助。

更新1:

我将原始标签更改为标签,现在一切正常。但我仍然很好奇这是否是 Kendo UI Mobile 的某种错误。

【问题讨论】:

    标签: android ios cordova mobile kendo-ui


    【解决方案1】:

    Kendo Mobile 完全挂起页面存在严重问题,导致应用对触摸/鼠标完全无响应。有问题的 CSS 位于 Loader.transition() 中,它执行 this.container.css("pointer-events", "none"),相当于:

    document.body.style.pointerEvents = "none";
    

    哎呀——太丑了。此外,在 _attachCapture 中,所有鼠标和触摸事件都有攻击性 JavaScript:

    event.preventDefault();
    

    如果使用带有嵌入式整页 WebView/UIWebView 的应用程序(需要关闭并重新启动应用程序),则会出现致命问题。

    在以下情况下可能会发生挂起:

    • 您的代码中有异常(即使在不明显的地方),
    • 您输入错误的转换(没有例外,只是挂起),
    • 用户的浏览器由于某种原因没有正确触发 transitionEnd 事件(对于一个用户的最新 Chrome 浏览器来说,这是可重复的。
    • 页面转换和Loader之间的交互存在故障模式(取决于时间,无法重复),
    • 多种其他原因

    请注意,Kendo 中有一条评论说:“这应该在某个时候清理(通过小部件的小部件),如果没有发生转换,则重构为不依赖完整回调的小部件。”,很明显 Telerik 知道有问题。

    您可以在开发过程中使用以下代码,至少在 Kendo Mobile 出现故障时发出警告:

    var transitionTimer;
    kendo.mobile.ui.Loader.prototype.wasTransition = kendo.mobile.ui.Loader.prototype.transition;
    kendo.mobile.ui.Loader.prototype.transition = function() {
        transitionTimer = setTimeout(function() {
            alert('Kendo has hung the page');
        }, 10000);
        this.wasTransition.apply(this, arguments);
    }
    kendo.mobile.ui.Loader.prototype.wasTransitionDone = kendo.mobile.ui.Loader.prototype.transitionDone;
    kendo.mobile.ui.Loader.prototype.transitionDone = function() {
        clearTimeout(transitionTimer);
        this.wasTransitionDone.apply(this, arguments);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-12
      • 2018-02-11
      • 2017-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多