Android kendo UI mobile ListView在本机浏览器上打开外部链接后挂起

Android kendo UI mobile ListView在本机浏览器上打开外部链接后挂起,android,ios,cordova,mobile,kendo-ui,Android,Ios,Cordova,Mobile,Kendo Ui,在Kendo UI Mobile ListView中,单击链接时会调用一个脚本以通过本机浏览器打开外部链接 PhoneGap脚本如下所示: 在Android上: navigator.app.loadUrl(链接,{openExternal:true}); 在iOS上: 打开(链接“U系统”) 可以在相应的本机浏览器上打开该链接 但是,当用户从本机浏览器切换回应用程序时,会出现一些问题 在Android上,屏幕挂在原始视图上,当再次按下“后退”按钮时,屏幕将取消冻结并可以刷新 然而,在iOS上,屏

在Kendo UI Mobile ListView中,单击链接时会调用一个脚本以通过本机浏览器打开外部链接

PhoneGap脚本如下所示: 在Android上: navigator.app.loadUrl(链接,{openExternal:true}); 在iOS上: 打开(链接“U系统”)

可以在相应的本机浏览器上打开该链接

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

在Android上,屏幕挂在原始视图上,当再次按下“后退”按钮时,屏幕将取消冻结并可以刷新

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

如何解决这一问题,以便在从本机浏览器切换回应用程序后,屏幕可以无雀斑

非常感谢你的帮助

更新1:


我把原来的标签改成了标签,现在一切都正常了。但我还是很好奇这是否是Kendo UI Mobile的某种缺陷。

Kendo Mobile完全挂起页面,使应用程序对触摸/鼠标完全没有反应,这是一个严重的问题。有问题的CSS位于Loader.transition()中,它的作用是
this.container.CSS(“指针事件”,“无”)
,相当于:

document.body.style.pointerEvents = "none";
哎哟,真难看。另外,在_attachCapture中,所有鼠标和触摸事件都有攻击性JavaScript,它可以:

event.preventDefault();
如果使用嵌入完整页面WebView/UIWebView的应用程序(需要关闭并重新启动应用程序),则会导致致命错误

如果出现以下情况,则可能发生挂起:

  • 您的代码中有一个异常(即使在不明显的地方)
  • 您输入了错误的转换(没有例外,只是挂起)
  • 由于某种原因,用户的浏览器无法正确触发transitionEnd事件(对于一个用户的最新Chrome浏览器,这是可以重复的)
  • 页面转换和加载程序之间的交互存在故障模式(取决于时间,无法重复)
  • 其他多种原因
请注意,剑道中有一条评论说:“这应该在某一点上进行清理(一个小部件接一个小部件),如果不发生转换,则重构为不依赖于完整回调的小部件。”,因此显然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);
}