gpt4 book ai didi

android - kendo UI mobile ListView 在 native 浏览器上打开外部链接后挂起

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:43:06 24 4
gpt4 key购买 nike

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

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

链接可以在相应的 native 浏览器上打开。

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

在Android上,屏幕停留在原来的 View 上,当再次按下后退按钮时,屏幕解冻并可以刷新。

然而,在 iOS 上,屏幕也卡在原始 View 上。当点击屏幕时,完整的 View (带有布局)被移动。无法取消卡住此屏幕。

如何解决这个问题,以便在从 native 浏览器切换回应用程序后屏幕可以不卡顿?

非常感谢您的帮助。

更新 1:

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

最佳答案

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

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

哎呀 - 那太丑了。此外,在 _attachCapture 中,所有鼠标和触摸事件都有令人反感的 JavaScript:

event.preventDefault();

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

挂起可能发生在:

  • 你的代码中有异常(即使在不明显的地方),
  • 你输错了一个转换(无一异常(exception),只是挂起),
  • 用户的浏览器由于某种原因没有正确触发 transitionEnd 事件(这对于一个用户的最新 Chrome 浏览器是可重复的。
  • 页面跳转与Loader的Interaction存在失效模式(取决于时序,无法重复),
  • 其他多种原因

请注意,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);
}

关于android - kendo UI mobile ListView 在 native 浏览器上打开外部链接后挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14954924/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com