我有一个 webview,其中加载了一个 url,其中有一些 url 可以点击,但问题是当我点击 webview 中加载的页面上的链接时,它会在默认浏览器中打开,我想打开包含所有浏览器的对话框当我点击设备中的链接时,要求选择浏览器,它应该在所选的浏览器中打开吗?
最佳答案
覆盖默认点击行为
当用户单击 WebView 中的链接时,默认行为是加载任何默认应用程序可以处理该链接。因此,如果您单击一个 Web URL,浏览器将打开以处理它。如果您尝试在本地构建的网页之间导航,则需要覆盖此功能。幸运的是,这并不难处理。您可以通过将 WebView 的 WebViewClient 设置为 WebViewClient 的新实例来非常快速地完成此操作,如下所示:
创建时:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView webView = (WebView) findViewById(R.id.webView1);
WebViewClient viewClient = new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse(url));
startActivity(intent);
view.loadUrl(url);
return true;
}
};
webView.setWebViewClient(viewClient);
webView.loadUrl("http://www.google.com");
}
查看以下链接以获取有关 WebViewClient 的更多信息
关于android - 打开对话框以选择浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15017013/