WebView abrindo em um Browser

De acordo com a especificação do componente WebView, ele deve ser sempre exibido como um componente sem a barra de navegação e os botões de um browser. Mas existem algumas ROMS que não seguem exatamente este comportamento para o WebView, principal as ROMS de equipamentos genéricos. Desta forma, quando você inclui uma WebView em sua aplicação, ela não irá se comportar como deveria, abrindo erroneamente dentro de um browser.

Para resolver este problema, você pode utilizar o código abaixo:

Java:

import android.app.Activity;

import android.os.Bundle;
import android.webkit.WebSettings.PluginState;
import android.webkit.WebView;

public class MinhaActivity extends Activity {

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String url ="http://www.frameworksystem.com";
WebView wv=(WebView) findViewById(R.id.webView1);
wv.getSettings().setJavaScriptEnabled(true);
wv.getSettings().setPluginState(PluginState.ON);
wv.getSettings().setAllowFileAccess(true);
wv.loadUrl(url);
}
}

main.xml:

?xml version="1.0" encoding="utf-8"?>
LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/white"

WebView android:id="@+id/webView1" android:layout_width="match_parent" android:layout_height="match_parent"></WebView>

/LinearLayout>

AndroidManifest.xml

uses-permission android:name="android.permission.INTERNET"></uses-permission>

No caso de versões mais antigas do Android, esta solução pode não funcionar. Desta forma, utilize a solução abaixo:

public class MainActivity extends Activity {

private WebView mWebView;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
        webView.setWebViewClient(new MyWebViewClient());
mWebView.loadUrl("http://www.google.com/");
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}

    private class MyWebViewClient extends WebViewClient {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return false;
        }
    }
}

Se você quiser saber mais sobre programação Java, .Net, Android, IOS, Banco de Dados, Análise de Sistemas, Pontos de Função, faça nossos treinamentos e conheça a Framework Training Center – Comprometimento em Qualidade de Ensino.

Posts Relacionados

Obtendo informações de conectividade WIFI no Andro... Dando continuidade aos posts relacionados com monitoramento de recursos do Android utilizando o comando dumpsys, vou mostrar neste post como obter inf...
Acessando Prompt do Linux no Android via Terminal O Android OS é fundamentalmente o Kernel do Linux. Foram feitas adaptações no Kernel para que o OS funcionasse de forma rápida, compacta e robusta em ...
Executando um soft reboot no android via linha de ... Podemos utilizar o comando reboot diretamente no prompt do adb shell para realizar um reboot no Android. Este comando funciona bem na maioria das veze...
Montando um quadro de imagens no Android Este post é bem interessante para quem trabalha com sistemas embarcados e modo kiosk. Vários dispositivos embarcados lidam com câmeras e, na maioria d...

1 Comment

  • Antonio Posted 20/09/2012 00:48

    Bacana d+, essas dicas simples e objetivas nos ajudam muito.

Add Comment

Your email address will not be published. Required fields are marked *

Phone: (31) 3646-1612
Fax: (31) 3646-1614
Loja 01, Lourdes, Belo Horizonte/MG
Rua Rio de Janeiro, 1278