调用loadurl时,Android webview将启动浏览器

我在LinearLayout创build了一个具有标题和Web视图的Activity 。 在onResume()方法中,它调用webView.loadUrl(url) 。 问题在于,活动首先显示标题,其余部分显示为空白,然后设备浏览器将以URL的页面启动。 我想看到的是在标题下面的WebView中显示的页面。 可能是什么问题呢?

编辑 :好的,做了一些进一步的search,发现这一个:

点击url打开默认浏览器

它指向这里的WebView教程。

只需实现Web客户端并设置它。

根据Maudicus和Hit的build议回答我的问题。

在这里检查WebView教程。 只需实现Web客户端,并将其设置loadUrl之前 。 最简单的方法是:

 myWebView.setWebViewClient(new WebViewClient()); 

要进行更高级的网页内容处理,请考虑ChromeClient。

用这个:

 lWebView.setWebViewClient(new WebViewClient()); 

像这样使用:

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_dedline); WebView myWebView = (WebView) findViewById(R.id.webView1); myWebView.setWebViewClient(new WebViewClient()); myWebView.loadUrl("https://google.com"); } 

让你的活动像这样。

 public class MainActivity extends Activity { WebView browser; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // find the WebView by name in the main.xml of step 2 browser=(WebView)findViewById(R.id.wvwMain); // Enable javascript browser.getSettings().setJavaScriptEnabled(true); // Set WebView client browser.setWebChromeClient(new WebChromeClient()); browser.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); // Load the webpage browser.loadUrl("http://google.com/"); } } 

我面临同样的问题,我find了关于WebView的Android官方文档解决scheme

这里是我的onCreateView()方法,在这里我使用了两种方法来打开url

方法1是在浏览器中打开url

方法2是在你想要的WebView中打开url。
而我正在使用方法2为我的应用程序,这是我的代码:

 public class MainActivity extends Activity { private WebView myWebView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_webpage_detail, container, false); // Show the dummy content as text in a TextView. if (mItem != null) { /* Method : 1 This following line is working fine BUT when we click the menu item then it opens the URL in BROWSER not in WebView */ //((WebView) rootView.findViewById(R.id.detail_area)).loadUrl(mItem.url); // Method : 2 myWebView = (WebView) rootView.findViewById(R.id.detail_area); // get your WebView form your xml file myWebView.setWebViewClient(new WebViewClient()); // set the WebViewClient myWebView.loadUrl(mItem.url); // Load your desired url } return rootView; } } 

简单的回答你可以这样使用

 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); WebView webView = new WebView(this); setContentView(webView); webView.setWebViewClient(new WebViewClient()); webView.loadUrl("http://www.google.com"); } } 

试试这个代码…

 private void startWebView(String url) { //Create new webview Client to show progress dialog //When opening a url or click on link webView.setWebViewClient(new WebViewClient() { ProgressDialog progressDialog; //If you will not use this method url links are opeen in new brower not in webview public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } //Show loader on url load public void onLoadResource (final WebView view, String url) { if (progressDialog == null) { // in standard case YourActivity.this progressDialog = new ProgressDialog(view.getContext()); progressDialog.setMessage("Loading..."); progressDialog.show(); } } public void onPageFinished(WebView view, String url) { try{ if (progressDialog.isShowing()) { progressDialog.dismiss(); progressDialog = null; } }catch(Exception exception){ exception.printStackTrace(); } } }); // Javascript inabled on webview webView.getSettings().setJavaScriptEnabled(true); // Other webview options /* webView.getSettings().setLoadWithOverviewMode(true); webView.getSettings().setUseWideViewPort(true); webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); webView.setScrollbarFadingEnabled(false); webView.getSettings().setBuiltInZoomControls(true); */ /* String summary = "<html><body>You scored <b>192</b> points.</body></html>"; webview.loadData(summary, "text/html", null); */ //Load url in webview webView.loadUrl(url); } 

这项工作完美的三星7感谢Abdukhafiz张贴在这里

 public class MainActivity extends Activity { WebView browser; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // find the WebView by name in the main.xml of step 2 browser=(WebView)findViewById(R.id.WebView); // Enable javascript browser.getSettings().setJavaScriptEnabled(true); // Set WebView client browser.setWebChromeClient(new WebChromeClient()); browser.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); // Load the webpage browser.loadUrl("http://www.google.com"); } }