Android: WebView – открыть определенные URL-адреса внутри WebView, остальное извне?

Вот мой код:

public class MainActivity extends Activity { @SuppressLint("SetJavaScriptEnabled") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); WebView mywebview = (WebView) findViewById(R.id.webview); mywebview.loadUrl("http://www.shufflemylife.com/shuffle"); WebSettings webSettings = mywebview.getSettings(); webSettings.setJavaScriptEnabled(true); mywebview.setWebViewClient(new WebViewClient()); } class MyWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if(url.contains("/shuffle")){ Intent i = new Intent(Intent.ACTION_VIEW); i.setData(Uri.parse(url)); startActivity(i); } return true; } } } 

В принципе, я хочу, чтобы любой URL-адрес, содержащий '/ shuffle' для загрузки внутри WebView, и все остальное, которое нужно было открыть во внешнем браузере. Это выполнимо? Насколько я могу это сделать?

Спасибо за любую помощь!

Это выполнимо?

Да.

Насколько я могу это сделать?

Закрыть, но назад. Поведение WebView по WebView заключается в отображении ссылок во внешнем браузере. Следовательно, если url.contains("/shuffle") , вы хотите вызвать loadUrl() в своем WebView чтобы сохранить внутреннюю ссылку и в этом случае вернуть значение true . Если это URL-адрес, который вы хотите обработать нормально, верните false .

Чтобы уточнить, вот как вы должны написать свой метод toOverrideUrlLoading:

 @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url.contains("/shuffle")) { mWebView.loadUrl(url); return false; } else { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse(url)); startActivity(intent); return true; } }