2016-11-08 117 views
1

我正在开发一个android应用程序。我使用Webview创建UI和ajax连接到服务器。有一个login.html文件有两个文本输入并向服务器发送用户名和密码,如果服务器返回成功,它将重定向到index.html文件。不幸的是,它不会重定向到index.html。在Android模拟器工作,但在Android 6手机,它不工作。任何机构知道如何在这种情况下在webview中重定向?如何在webview登录后重定向?

 var username = $("#username").val(); 
     var password = $("#password").val(); 
     var params = { "username": username, "password": password }; 
     $.getJSON("http://warehouse-abforce.rhcloud.com/api/v1/login", params, function (data) { 
      document.getElementById("wait").style.visibility = 'hidden'; 
      if (data["success"] == "true") { 
       window.localStorage.setItem("name_user", data["name"]); 
       window.localStorage.setItem("username", $("#username").val()); 
       window.localStorage.setItem("password", $("#password").val()); 
       if (navigator.userAgent.match(/Android/i)) 
        document.location = "index.html"; 
       else 
        window.location.replace("index.html"); 

      }); 
+0

哪个版本的Android操作系统安装在模拟器上? –

+0

android 6。它在模拟器中重定向,但不会在移动设备中重定向。 – ofskyMohsen

回答

1

终于我找到了解决办法。 我应该将此代码添加到我的java代码中。 wv是我的webview对象。 shouldOverrideUrlLoading必须实现并返回false。 现在,它在第6版的移动设备和模拟器中都能很好地工作。它成功重定向到第二页。

wv.setWebViewClient(new WebViewClient() { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     return false; 
    } 
});