티스토리 뷰

 

// WebView 내에서 URL 로드를 처리하기 위한 WebViewClient 클래스 정의
private class MyWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        // 웹뷰 내에서 링크 클릭시 처리
        if (url.startsWith("http:") || url.startsWith("https:")) {
            view.loadUrl(url);
            return false;
        } else {
            // 다른 URL 스키마에 대한 처리
            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
            startActivity(intent);
            return true;
        }
    }
}

// onCreate() 메소드 내에서 웹뷰 설정
WebView webView = findViewById(R.id.web_view);
webView.setWebViewClient(new MyWebViewClient());
webView.loadUrl("https://www.example.com");

// 웹뷰 내에서 사용자 클릭 결과를 가져오기 위한 WebViewClient 클래스 정의
private class MyWebChromeClient extends WebChromeClient {
    @Override
    public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
        // JavaScript에서 호출하는 alert() 함수를 처리
        // message 변수에는 JavaScript에서 전달한 문자열이 저장되어 있음
        // 이 메소드에서는 message 변수를 가지고 원하는 처리를 수행하면 됨
        result.confirm();
        return true;
    }
}

// onCreate() 메소드 내에서 웹뷰 설정
WebView webView = findViewById(R.id.web_view);
webView.setWebViewClient(new MyWebViewClient());
webView.setWebChromeClient(new MyWebChromeClient());
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("https://www.example.com");

위의 코드에서는 MyWebViewClient 클래스를 사용하여 웹뷰 내에서 URL 로드를 처리하고, MyWebChromeClient 클래스를 사용하여 JavaScript에서 호출하는 alert() 함수를 처리함.

alert() 함수에서 사용자가 클릭한 결과는 message 변수에 저장되어 있으며, 이 변수를 가지고 앱에서 필요한 처리를 수행하면 됨.

반응형
반응형
250x250
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함