Webový prehliadač WebView

OS Android umožňuje vložiť do aktivity vstavaný webový prehliadač – widget. Tento webový prehliadač môžeme použiť pri tvorbe používateľského rozhrania – napísať html kód alebo zobraziť nejakú webovú stránku, ak sme pripojený na internet. Prehliadač je postavený na jadre WebKit, ktoré tvoria jadro prehliadača Safari a Chrome.

Widget WebView sa nachádza v balíku android.webkit.


 

activity_main.xml

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

 MainActivity.java (obrázok vľavo)

 public class MainActivity extends AppCompatActivity {

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

        WebView wv = (WebView) findViewById(R.id.webview);
        wv.loadUrl("http://www.fpv.umb.sk");
    }

 MainActivity.java (obrázok vpravo)

public class MainActivity extends AppCompatActivity {

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

        WebView wv = (WebView) findViewById(R.id.webview);

        wv.loadUrl("http://sk.wikipedia.org/wiki/Bansk%C3%A1_Bystrica");
        wv.getSettings().setJavaScriptEnabled(true);
        wv.getSettings().setBuiltInZoomControls(true);
        wv.setWebViewClient(new WebViewClient() {

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

Podobne ako webový prehliadač, aj widget WebView má vlastné nastavenia. Upravením tohto nastavenia môžeme upraviť správanie prehliadača. Keď chceme nastaviť nejakú vlastnosť zavoláme metódu getSettings().

metóda

popis

setJavaScriptEnabled()

boolean metóda, ktorá zapína/vypína JavaScript

setBuiltInZoomControls()

boolean metóda, môžeme približovať/oddelovať prehliadač

setDefaultFontSize()

nastavenie veľkosti písma

Metóda setWebViewClient() prepája WebView s aktivitou. Metóda shouldOverrideUrlLoading() vráti hodnotu true, ak chceme požiadavku ošetriť sami alebo false, ak chceme použiť defaultny spôsob (napríklad načítať stránku danú URL – bez URL hlavičky).

Ak chceme zobraziť HTML kód, zavoláme metódu loadData():

public class MainActivity extends AppCompatActivity {

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

        WebView wv = (WebView) findViewById(R.id.webview);

        String stranka =
                        "<html>" +
                        "<body>" +
                        "<i> HTML text</i>" +
                        "</body>" +
                        "</html>";
        wv.loadData(stranka,"text/html","UTF-8");
    }
 


Podobne ako webový prehliadač, aj widget WebView má vlastné nastavenia. Upravením tohto nastavenia môžeme upraviť správanie prehliadača. Keď chceme nastaviť nejakú vlastnosť zavoláme metódu getSettings().