【发布时间】:2019-06-23 16:07:49
【问题描述】:
所以我刚刚实现了一个简单的 webview 应用程序,我在其中加载了 stackoverflow 主页。早些时候它工作得很好,但现在当我点击某个链接时,它会在默认浏览器中打开该链接。我通过创建我的自定义 webViewClient 类实现并覆盖了 shouldoverrideUrlLoading 方法。 我知道有很多这样的问题,但我写这个问题只是因为它们对我不起作用。
public class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(Uri.parse(url).getHost().endsWith(".com"))
return false;
Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse(url));
view.getContext().startActivity(intent);
return true;
}
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new MyWebViewClient());
final customEditText editText = findViewById(R.id.urlEditText);
Button button = findViewById(R.id.enterButtonId);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
webView.loadUrl("https://"+editText.getText().toString().trim().toLowerCase());
}
});
}
【问题讨论】: