I use this logic that every internal link contains 'myurl' string so it should be open in WebView and other external link in default browser.
package com.package.webviewapp;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView webView = (WebView) findViewById(R.id.webView);
webView.setWebViewClient(new MyWebViewClient());
String url = "http://myurl.com";
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(url);
}
}
class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(url.contains("myurl")){ // Could be cleverer and use a regex
view.loadUrl(url); // Stay within this webview and load url
return true;
} else {
return super.shouldOverrideUrlLoading(view, url); // Leave webview and use browser
}
}
}
but it is opening all links in WebView. as it is mentioned here Open link from Android Webview in normal browser as popup it should work.