WebView에서 링크의 맞춤 탭 열기

WebView는 자체 웹 콘텐츠를 앱에 원활하게 통합하는 데 유용합니다. 퍼스트 파티 콘텐츠에 소유하지 않은 웹사이트의 링크가 포함된 경우 WebView 대신 맞춤 탭에서 여는 것이 좋습니다. 여기에는 두 가지 이점이 있습니다.

  1. 퍼스트 파티 UX는 서드 파티 웹 콘텐츠 UX와 명확하게 구분됩니다.
  2. 서드 파티 웹사이트는 쿠키를 기본 브라우저와 공유하면 도움이 됩니다.

이렇게 구현하려면 WebViewClient에서 맞춤 onLoadResource 핸들러를 구성합니다.

WebView webView = (WebView)findViewById(R.id.webview);
webView.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        return true;
    }

    @Override
    public void onLoadResource(WebView view, String url) {
        if (url.startsWith("http://www.my-own-domain.com")) {
            //Handle Internal Link...
        } else {
            //Open Link in a Custom Tab
            Uri uri = Uri.parse(url);
            new CustomTabsIntent.Builder()
                  .build()
                  .launchUrl(context, uri);                            
        }
    }
});