studio example evaluatejavascript android android-webview webviewclient

example - Android webview inicia el navegador al llamar a loadurl



webview evaluatejavascript (8)

LinearLayout una Activity que tiene un título y una vista web en un LinearLayout . En el método onResume() llama a webView.loadUrl(url) . El problema es que la actividad primero muestra el título con el resto de la pantalla en blanco, luego el navegador del dispositivo se inicia con la página para la URL. Lo que quiero ver es la página que se muestra en la vista WebView debajo del título. ¿Cual podría ser el problema?

Edit : Ok, hice una búsqueda más y encontré este:

Al hacer clic en las URL se abre el navegador predeterminado

Apunta al tutorial de WebView here .

Solo implementa el cliente web y configúralo.


Estaba enfrentando el mismo problema y encontré la solución Documentación oficial de Android sobre WebView

Aquí está mi método onCreateView() y aquí usé dos métodos para abrir las urls

Método 1 es abrir url en el navegador y

Método 2 es abrir url en su WebView deseado.
Y estoy usando el Método 2 para mi aplicación y este es mi código:

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; } }


Este trabajo Perfecto en un Samsung 7 Gracias a Abdukhafiz por publicar aquí

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


Haz tu actividad como esta.

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


Prueba este código ...

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); }


Respondiendo a mi pregunta basada en las sugerencias de Maudicus y Hit.

Consulta el tutorial de WebView here . Solo implementa el cliente web y configúralo antes de loadUrl . La forma más sencilla es:

myWebView.setWebViewClient(new WebViewClient());

Para un procesamiento más avanzado del contenido web, considere el ChromeClient.


Simplemente responde que puedes usar así

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


Utilizar esta:

lWebView.setWebViewClient(new WebViewClient());


utilizar así:

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