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

WebView height 계속 늘어나요 [closed]

0 추천

크롬으로 들어가면 화면높이가 정상적인데

웹뷰로 들어가면 화면높이 빈공간이 계속 늘어나요 

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Fragment3">

    <WebView
        android:id="@+id/web"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

</FrameLayout>
webView.setWebChromeClient(new WebChromeClient());
webView.setWebViewClient(new WebViewClient(){
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (url != null && url.startsWith("intent://")) {
            try {
                Intent intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
                Intent existPackage = getActivity().getPackageManager().getLaunchIntentForPackage(intent.getPackage());
                if (existPackage != null) {
                    startActivity(intent);
                } else {
                    Intent marketIntent = new Intent(Intent.ACTION_VIEW);
                    marketIntent.setData(Uri.parse("market://details?id=" + intent.getPackage()));
                    startActivity(marketIntent);
                }
                return true;
            } catch (Exception e) {
                e.printStackTrace();
            }
        } else if (url != null && url.startsWith("market://")) {
            try {
                Intent intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
                if (intent != null) {
                    startActivity(intent);
                }
                return true;
            } catch (URISyntaxException e) {
                e.printStackTrace();
            }
        }
        view.loadUrl(url);
        return false;
    }
});
webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
질문을 종료한 이유: private void setupWebView() {     webView.getSettings().setJavaScriptEnabled(true);     webView.setWebViewClient(new WebViewClient() {         @Override         public void onPageFinished(WebView view, String url) {             webView.loadUrl("javascript:MyApp.resize(document.body.getBoundingClientRect().height)");             super.onPageFinished(view, url);         }     });     webView.addJavascriptInterface(this, "MyApp"); }  @JavascriptInterface public void resize(final float height) {     MyActivity.this.runOnUiThread(new Runnable() {         @Override         public void run() {             webView.setLayoutParams(new LinearLayout.LayoutParams(getResources().getDisplayMetrics().widthPixels, (int) (height * getResources().getDisplayMetrics().density)));         }     }); }
show7777 (1,170 포인트) 님이 2021년 7월 6일 질문
show7777님이 2021년 7월 7일 closed

1개의 답변

0 추천
  private void setupWebView() {
    webView.getSettings().setJavaScriptEnabled(true);
    webView.setWebViewClient(new WebViewClient() {
        @Override
        public void onPageFinished(WebView view, String url) {
            webView.loadUrl("javascript:MyApp.resize(document.body.getBoundingClientRect().height)");
            super.onPageFinished(view, url);
        }
    });
    webView.addJavascriptInterface(this, "MyApp");
}

@JavascriptInterface
public void resize(final float height) {
    MyActivity.this.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            webView.setLayoutParams(new LinearLayout.LayoutParams(getResources().getDisplayMetrics().widthPixels, (int) (height * getResources().getDisplayMetrics().density)));
        }
    });
}
익명사용자 님이 2021년 7월 16일 답변
...