WebView ohne externen Browser

  • Antworten:5
Moritz Henning
  • Forum-Beiträge: 6

26.03.2017, 15:18:49 via Website

Heyho liebe Android User,
ich programmiere derzeit eine App, habe das (glaube simple) Problem, dass sich das WebView auf einem externen Browser öffnet. Also: Klick -> Toast kommt -> Chrome öffnet sich. Ich möchte aber, dass sich das WebView in der App öffnet. Habe schon diverses nachgelesen und (habe es entweder nicht verstanden oder) bin daraus nicht schlau geworden. Kann mir das jemand bitte anschaulich (evtl. auch mit Codebeispielen) erklären? Aber bitte nicht auf ein englisches Forum oder so verweisen ^^

Danke :D

MFG
Moritz

— geändert am 26.03.2017, 15:19:13

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

26.03.2017, 15:38:12 via Website

Hallo Moritz,
herzlich wilkommen hier im Forum :)



Ohne Code lässt sich in den meisten Fällen schwer was sagen, jedoch nehme ich an dass hier ein anfängerfehler vorliegt.
Um eine WebView bei klick auf einen Link nicht auf Chorme verweisen zu lassen, muss man einen WebViewCleint benutzen:

webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView wView, String url)
{

    return false;
}

});

Weiteres hier:
https://developer.android.com/reference/android/webkit/WebViewClient.html#shouldOverrideUrlLoading%28android.webkit.WebView,%20java.lang.String%29
(Tut mir leid, wenn ich dir jetzt etwas englisches vorsetze, dies ist die offizielle Android API Doc von google, welche immer gut ist um was nachzuschauen, an Englisch Kenntnissen wirst du beim Programmieren nicht herumkommen ;) )

— geändert am 26.03.2017, 15:39:57

LG Pascal //It's not a bug, it's a feature. :) ;)

Moritz Henning

Antworten
Moritz Henning
  • Forum-Beiträge: 6

26.03.2017, 18:32:58 via Website

Okay... Habe (wie immer) vergessen, Code anzufügen :D Also, mein Vorhaben ist, dass wenn man auf ein ImageButton klickt, sich diese WebView öffnet. Also, hier mein WebView bisher:

public void showMenu(View view) {

    Toast.makeText(getApplicationContext(), "Essenbestellung wird geöffnet", Toast.LENGTH_SHORT).show();


    Uri mensa = Uri.parse("[meine url]");
    Intent mensaIntent = new Intent(Intent.ACTION_VIEW, mensa);


    startActivity(mensaIntent);

}

Und dann halt in der content.xml:

<WebView
android:onClick="showMenu"/>

Kannst du mir das mal anhand meines Beispiels zeigen?

Danke :D

MFG
Moritz

Antworten
Moritz Henning
  • Forum-Beiträge: 6

27.03.2017, 22:45:12 via Website

Ich habe es jetzt soweit geschafft, den WebView mit der internen URL zu erstellen. Nun brauche ich aber doch eine zweite Klasse, damit der WebView und der Button sich nicht überdecken, oder? (thinking)
Wie mache ich das? Mein WebView sieht jetzt so aus:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btnWeb = (Button) findViewById(R.id.button);
    editTxt = (EditText) findViewById(R.id.idTxt);
    btnWeb.setOnClickListener (new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String s = editTxt.getText().toString();
            WebView browser = (WebView) findViewById(R.id.webview);
            browser.setWebViewClient(new WebViewClient());
            browser.loadUrl(s);
        }

    });

Meine Layout-Datei sieht so aus (das [dot] ersetzt einen Punkt und das [slash] einen Schrägstrich, weil ich als Mitglied keine Links schicken kann(angry)) :

<EditText
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:text="[auf google verlinkt]"
    android:id="@+id/idTxt"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Click!"
    android:id="@+id/button"
    android:layout_gravity="center_horizontal"
     />

<WebView xmlns:android="http:[slash][slash]schemas[dot]android[dot]com[slash]apk[slash]res[slash]android"
    android:id="@+id/webview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
     />

Danke für eure Antworten.

PS: Das Beispiel oben ist meine TestApp, deswegen ist nicht alles so wie in Post 1 beschrieben ;)

MfG
Moritz

— geändert am 27.03.2017, 22:46:35

Antworten
Moritz Henning
  • Forum-Beiträge: 6

30.03.2017, 13:12:44 via Website

Kann mir mal bitte jemand antworten, ich weiß wirklich nicht wie es geht.

MfG
Moritz

Antworten