Programing

WebView 링크 클릭 기본 브라우저 열기

lottogame 2020. 8. 14. 08:12
반응형

WebView 링크 클릭 기본 브라우저 열기


현재 웹뷰를로드하는 앱이 있으며 모든 클릭은 앱 내에 유지됩니다. 내가하고 싶은 것은 특정 링크 (예 : http://www.google.com )를 앱 내에서 클릭하면 기본 브라우저가 열립니다. 누구든지 아이디어가 있다면 알려주세요!


나는 오늘 똑같은 일을해야했고 다른 누군가가 그것을 필요로 할 경우 여기에서 공유하고 싶은 StackOverflow에 대한 매우 유용한 답변을 찾았습니다.

소스 ( sven )

webView.setWebViewClient(new WebViewClient(){
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (url != null && (url.startsWith("http://") || url.startsWith("https://"))) {
            view.getContext().startActivity(
                new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
            return true;
        } else {
            return false;
        }
    }
});

WebView webview = (WebView) findViewById(R.id.webview);
webview.loadUrl(https://whatoplay.com/);

이 코드를 포함 할 필요가 없습니다.

// webview.setWebViewClient(new WebViewClient());

대신 아래 d 코드를 사용해야합니다.

webview.setWebViewClient(new WebViewClient()
{
  public boolean shouldOverrideUrlLoading(WebView view, String url)
  {
    String url2="https://whatoplay.com/";
     // all links  with in ur site will be open inside the webview 
     //links that start ur domain example(http://www.example.com/)
    if (url != null && url.startsWith(url2)){
      return false;
    } 
     // all links that points outside the site will be open in a normal android browser
    else
    {
      view.getContext().startActivity(
      new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
      return true;
    }
  }
});

이를 위해 Intent를 사용할 수 있습니다.

Intent browserIntent = new Intent("android.intent.action.VIEW", Uri.parse("your Url"));
startActivity(browserIntent);

다음 줄만 추가하면됩니다.

yourWebViewName.setWebViewClient(new WebViewClient());

확인 공식 문서에 대한.


이를 위해 인 텐트를 사용할 수 있습니다.

Uri uriUrl = Uri.parse("http://www.google.com/"); 
Intent launchBrowser = new Intent(Intent.ACTION_VIEW, uriUrl);  
startActivity(launchBrowser);  

참고 URL : https://stackoverflow.com/questions/4229494/webview-link-click-open-default-browser

반응형