현재 웹뷰를로드하는 앱이 있고 모든 클릭이 앱 내에 유지됩니다. 내가하고 싶은 것은 특정 링크 (예 : http://www.google.com )를 앱 내에서 클릭하면 기본 브라우저가 열립니다. 누구든지 아이디어가 있다면 알려주세요!
현재 웹뷰를로드하는 앱이 있고 모든 클릭이 앱 내에 유지됩니다. 내가하고 싶은 것은 특정 링크 (예 : http://www.google.com )를 앱 내에서 클릭하면 기본 브라우저가 열립니다. 누구든지 아이디어가 있다면 알려주세요!
답변:
나는 오늘 똑같은 일을해야했고 다른 누군가가 그것을 필요로 할 경우 여기에서 공유하고 싶은 StackOverflow에 대한 매우 유용한 답변을 찾았습니다.
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;
}
}
});
shouldOverrideUrlLoading(WebView view, String url)
API (24)에 사용되지는 확인 이 답변을 .
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;
}
}
});