javascript – Cordova – window.history.back()不支持iOS 9中的HTML后退按钮

前端之家收集整理的这篇文章主要介绍了javascript – Cordova – window.history.back()不支持iOS 9中的HTML后退按钮前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在我的应用程序中,我使用window.history.back导航回上一个View

后退按钮声明

 

按钮动作:

 $("#verification_back_icon").on("click",function(e)
{
if(checkDirtyVacation())
{
    e.preventDefault();
    if(backbtnAlt== false)
    {
        backbtnAlt =true; 
         confirm("All data will be lost. Do you want to continue?",function(r){
            if(r){
                 //onBackKeyDown();
                    clearVacationvalues();
                    window.history.back();//this is not working in iOS 9
            }else{

            }
            backbtnAlt =false;
        });
    }   
}
else 
{
    e.preventDefault();
    if($(".vaction_location").hasClass("chkSelect"))
    {    
        $(".vaction_location").removeClass("chkSelect");
        $(".vaction_location").addClass("chkUnSelect");
    }


    window.history.back();
   }
  }); 

这完美地工作到iOS 8.4.在iOS 9中,此导航无效.

我使用的是Apache Cordova本机平台版本3.8.0.

如果有人遇到类似的问题请建议我.
我试过history.back doesn’t work on iOS using Cordova,但没有运气

谢谢.

最佳答案
问题是window.location.hash的设置在iOS 9.0 UIWebview中是异步的(由Cordova / Phonegap使用) – 有关详细信息,请参阅this bug report.

这会导致使用jQuery Mobile时出现问题,默认情况下使用window.location.hash在“pages”之间导航.它还会导致使用此机制的弹出窗口/对话框/选择菜单出现问题.

您可以通过阻止jQuery Mobile自动侦听/使用location.hash来解决此问题:

$(document).on("deviceready",function(){
    $.mobile.hashListeningEnabled = false;
});

但是,我发现这对Android有副作用,例如导致硬件返回按钮无法工作,因此我使用cordova-plugin-device专门针对iOS 9进行了定位:

$(document).on("deviceready",function(){
    if(device.platform === "iOS" && parseInt(device.version) === 9){
        $.mobile.hashListeningEnabled = false;
    }
});

请注意,我使用navigator.app.backHistory()而不是window.history.back()与hashListeningEnabled = false – 这可能会有所不同.

或者,你可以使用this plugin在iOS 8和9上使用新的WKWebView.在iOS 8上,Safari使用WKWebView,因此在iOS 9浏览器中查看的JQM站点不会遇到这些问题. cordova-ios 3仍然使用UIWebView,因为a bug在iOS 8中的WKWebView中,但即将推出的适用于iOS 9的cordova-ios 4 will support a WKWebView core plugin.请注意,将WKWebView与Cordova / Phonegap应用程序一起使用时还有其他注意事项,因为它具有更严格的安全性,例如在XHR响应中需要CORS标头.

原文链接:https://www.f2er.com/html/426070.html

猜你在找的HTML相关文章