마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Webview 리다이렉트해서 띄우는 것 질문.

0 추천

처음 loadUrl메서드를 사용한 후 

shouldOverrideUrlLoading 매서드의 url로 리다이렉트 주소를 받습니다.

 

그 후, 디코딩 한 후, 그 url로 웹뷰를 다시한번 띄우고 싶습니다. 

그런데 shouldOverrideUrlLoading안에서 loadUrl 메서드를 다시 사용하니 아무반응이 없습니다.

어떻게해야할까요 

 

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_webview);
    init();
}

private void init() {


    int productId = bible_list.get(Bible_CurrentBibleInfo.cur).id;
    String userId = DB_Send_AppInfoRequest.getUserId();

    Log.d("메시지", "이제품의 아이디: " + productId + "   유저 아이디 : " + userId);

    String url =
    "블라블라블라~~?pid="+productId+"&id="+userId;

    Log.i("URL", "Opening URL :" + url);

    webView = (WebView) findViewById(R.id.webview);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.loadUrl(url);

    webView.setWebViewClient(new WebViewClient(){
        public boolean  shouldOverrideUrlLoading(WebView view, String url) {

            if (!secondOpen) {

                // URL 스트링 중, http부터 & 전까지 자른다음에 디코딩 해야함.
                // 뽑아야 할 곳 첫번째 index, 마지막 index를 구함.
                int startIndex = url.indexOf("http%");
                int lastIndex = url.indexOf("&");
                //새로운 url로 변신
                String newUrl = url.substring(startIndex, lastIndex);

                try {
                    String str = URLDecoder.decode(newUrl, "UTF-8");


                    webView.getSettings().setJavaScriptEnabled(true);
                    webView.loadUrl(str);
                    secondOpen = true;


                } catch (Exception e) {

                }}

                return true;
            }
         });
}


익명사용자 님이 2016년 10월 25일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...