1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Native App aus EMail heraus starten

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von hawky76, 02.05.2010.

  1. hawky76, 02.05.2010 #1
    hawky76

    hawky76 Threadstarter Neuer Benutzer

    Beiträge:
    5
    Erhaltene Danke:
    0
    Registriert seit:
    02.05.2010
    Hallo zusammen,

    ich bin relativ neu in der Android Welt und versuche gerade eine App für Doodle zu schreiben (Doodle: easy scheduling). Hierbei handelt es sich um eine Plattform die Onlineumfragen zur Verfügung stellt. Die Einladungen zu den Umfragen werden als Weblinks per EMail verschickt. Für mich stellt sich jetzt die Frage ob es möglich ist, wenn der Anwender auf den Link in der EMail klickt nicht der Webbrowser gestartet wird, sondern meine App. Wenn ja, wie geht das und in welcher Form kommt der Link dann in der App an?

    Besten Dank im voraus.

    Grüße
    /Hawky
     
  2. Mort, 02.05.2010 #2
    Mort

    Mort Android-Lexikon

    Beiträge:
    960
    Erhaltene Danke:
    262
    Registriert seit:
    16.11.2009
  3. hawky76, 05.05.2010 #3
    hawky76

    hawky76 Threadstarter Neuer Benutzer

    Beiträge:
    5
    Erhaltene Danke:
    0
    Registriert seit:
    02.05.2010
    Sorry, komme erst jetzt dazu das zu testen, leider funktioniert es bei mir auch nicht.

    Meine AndroidManifest.xml sieht wie folgt aus:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="de.terrok_nor.android.doodle"
    android:versionCode="1"
    android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".DoodleActivity"
    android:label="@string/app_name">
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
    <!-- eingefügt zum Starten von Doodle-Links -->
    <category android:name="android.intent.category.DEFAULT"></category>
    <category android:name="android.intent.category.BROWSABLE"></category>
    <data android:host="www.doodle.com" android:scheme="http"></data>
    <!-- -->
    </intent-filter>
    </activity>

    </application>


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

    Leider startet beim Anklicken eines Links immernoch der Browser. Ich habs nur im Emulator getestet, gehe aber davon aus, dass es dort auch funktionieren sollte, oder?

    Grüße
    /Hawky
     
  4. hawky76, 15.05.2010 #4
    hawky76

    hawky76 Threadstarter Neuer Benutzer

    Beiträge:
    5
    Erhaltene Danke:
    0
    Registriert seit:
    02.05.2010
    Moin zusammen,

    ok, habs hinbekommen das die App direkt gestartet wird. Vielen Dank für den Link.

    Ich müsste jetzt allerdings noch von der App aus auf den Link zugreifen. Hat hier noch jemand eine Idee in welchem Feld ich den Link finde?

    Danke!
    /Hawky
     
  5. FelixL, 15.05.2010 #5
    FelixL

    FelixL Ehrenmitglied

    Beiträge:
    4,855
    Erhaltene Danke:
    754
    Registriert seit:
    26.11.2009
    Phone:
    Wileyfox Swift, HTC One M8
    Hab mich nicht mit beschäftigt, aber der Link dürfte im Intent mitgeschickt werden. Gibt eine Funktion namens intent.getExtra()

    Bundle extras = intent.getExtras
    String meineUrl = extras.getString("URL");
    könnte funktionieren, aber frag mal Google. Kann sein das das "URL" falsch ist und da war was anderes hin muss.

    Was war denn falsch, nur falls es nochmal jemand versucht?
     
  6. hawky76, 16.05.2010 #6
    hawky76

    hawky76 Threadstarter Neuer Benutzer

    Beiträge:
    5
    Erhaltene Danke:
    0
    Registriert seit:
    02.05.2010
    Hallo FelixL,

    vielen Dank für den Hinweis.

    Die Abfrage:
    getIntent().getExtras().getString("URL");
    ist, wie vermutet, nicht ganz korrekt, gab mir aber den eintscheidenden Hinweis.
    Die entsprechende Information ist im Datenbereich gespeichert, so dass die Abfrage:
    getIntent().getData().getHost() + getIntent().getData().getPath();
    das gewünschte Ergebnis liefert.

    Zur Aufklärung der ursprünglichen Frage: in dem angegebenen Link war nichts falsch, ich hab es nur an die falsche Stelle kopiert und hatte zudem noch einen Tippfehler drin. Kaum macht mans richtig, klappt es auch. :)

    Hier nochmal die Lösung:
    <intent-filter>
    <action android:name="android.intent.action.VIEW"></action>
    <category android:name="android.intent.category.DEFAULT"></category>
    <category android:name="android.intent.category.BROWSABLE"></category>
    <data android:host="doodle-test.com" android:scheme="http"></data>
    </intent-filter>

    Grüße
    /Hawky
     

Diese Seite empfehlen