调用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"); } }