[android] loadurl을 호출하면 Android 웹보기가 브라우저를 시작합니다.

Activity에 제목과 웹보기가있는를 만들었습니다 LinearLayout. 이 onResume()방법에서는을 호출합니다 webView.loadUrl(url). 문제는 활동이 먼저 나머지 화면을 비운 상태로 제목을 표시 한 다음 장치 브라우저가 URL 페이지와 함께 시작된다는 것입니다. 내가보고 싶은 WebView것은 제목 아래 에 표시되는 페이지 입니다. 무엇이 문제 일 수 있습니까?

편집 : 좋아, 추가 검색을 하고이 것을 찾았습니다.

URL을 클릭하면 기본 브라우저가 열립니다

여기 에서 WebView튜토리얼을 가리 킵니다 .

웹 클라이언트를 구현하고 설정하십시오.



답변

Maudicus와 Hit의 제안에 따라 내 질문에 대답하십시오.

여기서 WebView 튜토리얼을 확인 하십시오 . 웹 클라이언트를 구현하고 loadUrl 전에 설정하십시오 . 가장 간단한 방법은 다음과 같습니다.

myWebView.setWebViewClient(new WebViewClient());

웹 컨텐츠에 대한 고급 처리를 위해 ChromeClient를 고려하십시오.


답변

이것을 사용하십시오 :

lWebView.setWebViewClient(new WebViewClient());


답변

이처럼 사용하십시오 :

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_dedline);

    WebView myWebView = (WebView) findViewById(R.id.webView1);
    myWebView.setWebViewClient(new WebViewClient());
    myWebView.loadUrl("https://google.com");
}


답변

당신의 활동을 이렇게 만드십시오.

public class MainActivity extends Activity {
WebView browser;

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

    // find the WebView by name in the main.xml of step 2
    browser=(WebView)findViewById(R.id.wvwMain);

    // Enable javascript
    browser.getSettings().setJavaScriptEnabled(true);  

    // Set WebView client
    browser.setWebChromeClient(new WebChromeClient());

    browser.setWebViewClient(new WebViewClient() {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
                }
        });
     // Load the webpage
    browser.loadUrl("http://google.com/");
   }
}


답변

나는 같은 문제에 직면하고 WebView에 대한 Android 공식 문서 솔루션을 찾았습니다.

여기 내 onCreateView()방법이 있고 여기에 URL을 여는 두 가지 방법을 사용했습니다.

방법 1 은 브라우저에서
URL을 열고

방법 2 는 원하는 WebView에서 URL을 엽니 다
.

그리고 내 응용 프로그램에 방법 2를 사용하고 있으며 이것은 내 코드입니다.

public class MainActivity extends Activity {
   private WebView myWebView;

     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

      View rootView = inflater.inflate(R.layout.fragment_webpage_detail, container, false);

      // Show the dummy content as text in a TextView.
      if (mItem != null) {

         /* Method : 1
          This following line is working fine BUT when we click the menu item then it opens the URL in BROWSER not in WebView */
         //((WebView)   rootView.findViewById(R.id.detail_area)).loadUrl(mItem.url);

        // Method : 2
        myWebView = (WebView) rootView.findViewById(R.id.detail_area); // get your WebView form your xml file
        myWebView.setWebViewClient(new WebViewClient()); // set the WebViewClient
        myWebView.loadUrl(mItem.url); // Load your desired url
    }

    return rootView;
}                                                                                               }


답변

간단히 대답하면 다음과 같이 사용할 수 있습니다

public class MainActivity extends AppCompatActivity {

     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         WebView webView = new WebView(this);
         setContentView(webView);
         webView.setWebViewClient(new WebViewClient());
         webView.loadUrl("http://www.google.com");
   }
}


답변

이 코드를 사용해보십시오 …

private void startWebView(String url) {

    //Create new webview Client to show progress dialog
    //When opening a url or click on link

    webView.setWebViewClient(new WebViewClient() {
        ProgressDialog progressDialog;

        //If you will not use this method url links are opeen in new brower not in webview
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }

        //Show loader on url load
        public void onLoadResource (final WebView view, String url) {
            if (progressDialog == null) {
                // in standard case YourActivity.this
                progressDialog = new ProgressDialog(view.getContext());
                progressDialog.setMessage("Loading...");
                progressDialog.show();
            }
        }
        public void onPageFinished(WebView view, String url) {
            try{
            if (progressDialog.isShowing()) {
                progressDialog.dismiss();
                progressDialog = null;
            }
            }catch(Exception exception){
                exception.printStackTrace();
            }
        }

    });

     // Javascript inabled on webview  
    webView.getSettings().setJavaScriptEnabled(true);

    // Other webview options
    /*
    webView.getSettings().setLoadWithOverviewMode(true);
    webView.getSettings().setUseWideViewPort(true);
    webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
    webView.setScrollbarFadingEnabled(false);
    webView.getSettings().setBuiltInZoomControls(true);
    */

    /*
     String summary = "<html><body>You scored <b>192</b> points.</body></html>";
     webview.loadData(summary, "text/html", null);
     */

    //Load url in webview
    webView.loadUrl(url);
}