我有这个代码,它可以正常打开一个网页:
package com.example.fragmenttabs;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.app.Fragment;
public class FragmentTab2 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragmenttab2, container, false);
String url = "http://example.com";
WebView view = (WebView)rootView.findViewById(R.id.webView2);
view.getSettings().setJavaScriptEnabled(true);
view.loadUrl(url);
return rootView;
}
}
但不幸的是,当我点击该网页视图中的链接时,它会打开Google Chrome。如何禁用此行为?我想在同一个webview中打开它。未在Google Chrome中打开。谢谢。
答案 0 :(得分:9)
您需要像这样实施setWebViewClient(....)
。
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
答案 1 :(得分:4)
要在webview
内打开webivew链接,请使用setWebViewClient
作为
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return false;
}
});
如文档中所述,如果主机应用程序想要离开当前的WebView并处理url本身,则返回 true ,否则返回 false
有关详细信息,请参阅Webview shouldOverrideUrlLoading
答案 2 :(得分:2)
实现WebViewClient(),如:
WebView _open;
WebSettings webSettings = _open.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setBuiltInZoomControls(true);
_open.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return super.shouldOverrideUrlLoading(view, url);
}
});
_openpaypal.loadUrl(url);