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

안드로이드 webview shouldOverrideUrlLoading 호출 안되는 이유?(react로 만든 프로젝트 url만 함수 호출 안됨) [closed]

0 추천

react로 만들어 둔 프로젝트를 안드로이드의 webview를 통해서 앱으로 만들려고 합니다.

url변경되는 것을 이벤트로 잡기 위해 webview에서 shouldOverrideUrlLoading( ) 함수를 사용하려고 하는데 해당 함수가 호출되지 않고 있습니다.

다른 만들어 뒀던 웹 프로젝트를 webview에 넣었을 때는 shouldOverrideUrlLoading( ) 함수가 정상적으로 호출되는데 유독 저 react로 만든 프로젝트를 webview에 넣었을 때만 호출이 안되는데 이유를 알 수 있을까요?

아래 소스코드 입니다. 실행하면 url변경될 때마다 로그에 url이 찍혀야 되는데 안나와요. API레벨은 28입니다.

public class MainActivity extends AppCompatActivity {
    private static final String TAG = "JS_test";
    private WebView wv_index;
    private String url = "react 웹 프로젝트 주소";


    @SuppressLint("SetJavaScriptEnabled")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        wv_index = (WebView) findViewById(R.id.wv_index);
        wv_index.getSettings().setJavaScriptEnabled(true);
        wv_index.getSettings().setDomStorageEnabled(true);
        wv_index.setWebChromeClient(new WebChromeClient());
        wv_index.setWebViewClient(new WebViewClientClass());
        wv_index.loadUrl(url);

    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if((keyCode == KeyEvent.KEYCODE_BACK) && wv_index.canGoBack()){
            wv_index.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

    private static class WebViewClientClass extends WebViewClient {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
            final Uri uri = request.getUrl();
            String url = uri.toString();
            Log.d(TAG+"shouldOver", url);
            return super.shouldOverrideUrlLoading(view, request);
        }

    }


}

 

질문을 종료한 이유: 질문이 잘못됬습니다.
Yosina (120 포인트) 님이 2021년 1월 6일 질문
Yosina님이 2021년 1월 6일 closed
...