WebSeite über Link als App öffnen

  • Antworten:25
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 34

01.10.2016 00:46:39 via Website

Hey :)

Ich habe mir heute einige Tutorials angeschaut (www.youtube.com/watch?v=D_zISsB7LR0 und www.youtube.com/watch?annotation_id=annotation_3754053189&feature=iv&src_vid=D_zISsB7LR0&v=1pO7tEEbth4 ). Das ganze hat eigentlich auch super geklappt und nachdem ich einige Fehler meinerseits beseitigt hatte, konnte ich die App auch auf meinem Smartphone starten. Das Problem dabei ist jedoch, dass die Website - wie im Video - nicht direkt in der App sondern in Chrome geöffnet wurde/bzw. ein Pop-Up kam, wo ich den Browser auswählen sollte, mit dem ich das öffnen möchte.
Im Video selber scheint das ganze ja gut zu funktionieren. Wäre klasse, wenn mir jemand sagen könnte, ob sich vielleicht etwas erneuert hat. (Ich benutze halt denselben Code, der im Video zur Verfügung gestellt wurde)

— geändert am 01.10.2016 07:44:01 durch Moderator

Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 9.311

01.10.2016 07:43:30 via App

Hallo Lars!
Herzlich Willkommen hier bei uns im Forum. :)
Ich habe deinen Threadtitel mal angepasst und deinen Thread in die passende Kategorie verschoben.
Bitte achte beim nächsten Thread auf einen aussagekräftigeren Titel.
Danke :)



Hast du die Intent filter richtig gesetzt?
Wie sieht deine manifest.xml aus?

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

  • Forum-Beiträge: 34

01.10.2016 13:47:33 via Website

Hmm.. ich glaube der jetzige Thread-Titel passt nicht wirklich. Ich möchte ja keine Website über einen Link als App öffnen, sondern eine App von mir starten, in der die Website geladen wird.

Die Web-View öffnet ja leider auch nur den Webbrowser selbst :/

War das auch an mich gerichtet, oder ist das ein Teil von deiner Signatur?

Hast du die Intent filter richtig gesetzt?
Wie sieht deine manifest.xml aus?

— geändert am 01.10.2016 13:52:00

  • Forum-Beiträge: 34

01.10.2016 13:55:20 via Website

Hier ist jetzt der Code: pastebin.com/GEeWsi6W

Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 9.311

01.10.2016 14:00:53 via Website

Na doch der Titel ist schon so gemeint:
Du progrmammierst deine eigene App als Cleint für die Webseite (ob die App die seite nur anzeigt ist nebensächlich)
Und wenn du dann z.b. per Mail auf einen Link zur Seite klickst soll nicht der Browser geöfffnet werden sondern deine App.

Aber Ich frage mich was du konkret für ein Problem hast.
In der App hat nam eine WebView, diese kannst zu mit myWebView.loadUrl("http://mysite.com"); zu einer bestimmten Seite navigieren. Diese sollte dann in der App angezeigt werden, also du siehst dass du in deiner App bist und anzeigen tut er die Seite.
Bsit du schon soweit? Wenn nein bitte beschreibe genauer wo es hängt.

PS: Das gehört dazu, Signatur ist in anderer Schriftgröße ;)

— geändert am 01.10.2016 14:01:44

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

  • Forum-Beiträge: 34

01.10.2016 14:10:40 via Website

Ah okay ;)
Bin wie gesagt mit Android Programmierung noch nicht allzu vertraut, habe ich wohl falsch verstanden.

In der App hat nam eine WebView, diese kannst zu mit myWebView.loadUrl("mysite.com"); zu einer bestimmten Seite navigieren. Diese sollte dann in der App angezeigt werden, also du siehst dass du in deiner App bist und anzeigen tut er die Seite.

Das hatte ich auch bei meinem ersten Versuch probiert, allerdings wurde dabei nur ein Pop-Up geöffnet, ob wo ich die Website drin öffnen möchte (Chrome/Internet)

PS: Das gehört dazu, Signatur ist in anderer Schriftgröße

Ah okay, war etwas wegen dem Strich verwirrt
Achja: Ab wann werde ich nicht mehr als "neues Mitglied" gezählt? Das mit den Links nervt etwas :p

Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 9.311

01.10.2016 14:12:55 via Website

Ab 10 Posts kannst du Links posten ;)

Ok, die Frage ist was du da falsch ge,acht hast. Hast du den Code der Activity da?

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

Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 9.311

01.10.2016 14:22:33 via Website

Du kannst hier im Forum auch direkt Code einfügen, ist vlt. einfacher.

Aber hast du irgendwo schnmal shouldOverrideUrl() im WebCilient überschrieben?
https://developer.android.com/reference/android/webkit/WebViewClient.html#shouldOverrideUrlLoading(android.webkit.WebView,%20android.webkit.WebResourceRequest)
Wenn nein dann mach das mal und dann ein Return false.
Und hat

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

  • Forum-Beiträge: 34

01.10.2016 14:24:14 via Website

Wenn ich den Code hier einfüge, wird mir irgendetwas davon als Code gekennzeichnet.

  • Forum-Beiträge: 34

01.10.2016 18:15:45 via Website

Okay, so wie ich das jetzt aus deinem Text interpretieren konnte, brauche ich ja nur einen WebViewer. Bin jetzt auf dieses Video hier gestoßen (www.youtube.com/watch?v=wLivuYpPqHA) wo das für meine Verhältnisse ganz gut erklärt wird :P
Aber in meinem Emulator wird die Website trotzdem in einem neuen Fenster geöffnet.

Hier der Code:

  1. MainActivity.java:

package com.unspotify.lars.unspotify;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebView;

public class MainActivity extends AppCompatActivity {

private WebView webView;

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

   webView = (WebView)findViewById(R.id.webView1);
   webView.getSettings().setJavaScriptEnabled(true);
   webView.loadUrl("www.google.de/");

}
}

  1. AndroidManifest.xml


package="com.unspotify.lars.unspotify">

android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">


           <category android:name="android.intent.category.LAUNCHER" />
       </intent-filter>
   </activity>

  1. activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<WebView xmlns:android="schemas.android.com/apk/res/android"

android:id="@+id/webView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>

Ich bin mir nicht ganz sicher, aber liegt es vielleicht an der Permission android.permission.INTERNET ? Die wurde nämlich im Video schon "vorgeschlagen", ich musste die jetzt aber manuell eingeben. (Bei den schemas ist immer ein http usw. davor und bei den urls auch, musste ich halt noch wegen Sperre entfernen)

— geändert am 01.10.2016 18:22:23

Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 9.311

01.10.2016 18:21:44 via Website

Hmm sieht jetzt nicht falsch aus.
1. würde ich komplett die url schreiben also
http://google.de (mit http, evtl, hast du das wegen Link Postschutz hier weggelassen)
2. mach mal noch die urlOverride rein:

  webView.setWebViewClient(new WebViewClient() {
                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    view.clearView();
                    view.loadUrl(url);

                    return true;
                }
            });

Was passiert wenn du die App mal auf deinem richtigen Gerät ausführst? Manchmal kommt es zu Problemen weil der Emulator noch nicht 100%passend ist.

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

  • Forum-Beiträge: 34

01.10.2016 18:46:27 via Website

Wonach müsste ich jetzt deinen Code einfügen/ bzw. mit was genau ersetzen?

Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 9.311

01.10.2016 18:51:55 via App

Nichts ersetzen sondern nur den code von mir unter das liad der WebView in die MainActivity

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

Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 9.311

01.10.2016 19:24:17 via Website

Nein, die Syntax ist falsch, schau dir nochmal meinen Code an...

PS: Beschäftige dich auf mal in naher Zukunft mit den Grundlagen sonst wird alles was über diese paar Zeilen hinausgeht ein "Mysterium" sein ;)

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

  • Forum-Beiträge: 34

01.10.2016 21:32:58 via Website

Habe jetzt einfach Copy & Paste gemacht. Habe vorher glaube ich vergessen WebViewClient zu importieren^^

Edit:
Habe jetzt mal den Emulator gestartet, funktioniert super, Danke!

— geändert am 01.10.2016 21:33:38

  • Forum-Beiträge: 34

01.10.2016 21:36:12 via Website

Zu den Grundlagen:
Kannst du mir da eine gute Tutorialserie empfehlen?

Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 9.311

01.10.2016 21:50:28 via Website

Es gibt keine vollständige/gute Tutorialseite.
Du musst Java von Grund auf lernen, d.h. am besten einen Java Kurs oder eines der Bücher von hier.
Fallst du das nicht willst, darfst du dich Quer durchs Internet klicken ( am besten komplett auf englisch), da findet man zu allem was. Auch zu konkreteren Problemen.

Allgmeine dinge findest du inder der offiziellen ApiDoc:
http://d.android.com

Oder gute Tutorials macht auch http://vogella.com

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

  • Forum-Beiträge: 34

01.10.2016 21:55:53 via Website

Ah okay, klasse :)

Ich habe ja jetzt google angegeben - Gibt es auch einen Weg, mich beim Appstart direkt mit meinen Daten bei Google anzumelden?