2016-11-08 5 views
1

나는 안드로이드 응용 프로그램을 개발 중입니다. Webview를 사용하여 서버에 연결하는 UI와 아약스를 만들었습니다. login.html 파일에는 두 개의 텍스트 입력이 있으며 사용자 이름과 비밀번호를 서버에 보내고 서버가 success를 반환하면 index.html 파일로 리디렉션됩니다. 불행히도 index.html로 리디렉션하지 않습니다. 안드로이드 에뮬레이터에서 작동하지만 안드로이드 6 모빌에서는 작동하지 않습니다. 어떤 상황이라도이 상황에서 웹 뷰에서 리디렉션하는 방법을 알고 있습니까?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 OS 버전이 설치되어 있습니까? –

+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; 
    } 
}); 
관련 문제