it-swarm.com.de

Wie kann ich eine installierte App über eine E-Mail-URL in Android öffnen?

Ich möchte meine App über eine E-Mail-URL öffnen, im Wesentlichen wie im folgenden Beispiel für Twitter.com .

E-Mail mit Link:

Email with link

Auswahl zum Öffnen der App oder des Browsers:

Select app or browser

Nachdem Sie auf die App-Auswahl geklickt haben, wird die Twitter-App geöffnet:

Open Twitter app

Ich habe den folgenden Code ausprobiert, aber er funktioniert nicht:

<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="www.Twitter.com" Android:scheme="http"></data>
</intent-filter>

Wenn jemand eine richtige Antwort hat, schreiben Sie bitte hier einige Beispiele.

18
Roadies

Der folgende Code hat für mich funktioniert:

<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="www.my.app.com"
        Android:path="launch"
        Android:scheme="http"></data>
</intent-filter>

Wenn der E-Mail-Link als http://www.my.app.com/launch eingestellt ist.

Ref: Starten der Android-Anwendung über Link oder E-Mail

11
hemu

Gehen Sie einfach dieses Deeplinking Google-Dokument durch. Sie werden von diesem Deep Linking-Konzept erfahren.

Ich hoffe, das hilft einem Körper.

9
Aristo Michael

Beispiel: Ihre URL wird in etwa wie https://roadies.com aussehen, und Sie haben den Absichtsfilter wie unten beschrieben 

        Android:name="com.droid.MainActivity"
        Android:label="@string/app_name" >

        <intent-filter>
        <action Android:name="Android.intent.action.VIEW" />
        <category Android:name="Android.intent.category.DEFAULT" />
        <category Android:name="Android.intent.category.BROWSABLE" />
        <data
            Android:Host="roadies.com"
            Android:scheme="https" />
    </intent-filter>

    </activity>
3
Vny Kumar

Für mich funktionierte keine der hier geposteten Antworten. Ich habe Dutzende verschiedener Syntaxen ohne Erfolg ausprobiert. Beim Erstellen der App über Cordova ist ein Fehler beim Analysieren aufgetreten.

Ich traf schließlich das antwortete , was mich auf die richtige Spur brachte. 

Also habe ich im PROJECT_ROOT/hooks/after_prepare/-Ordner einen Hook namens 010_add_intent_filters.sh erstellt. Hier ist der Inhalt dieses Hakens: 

!/usr/bin/bash

MANIFEST=./platforms/Android/AndroidManifest.xml

grep -q pathPattern $MANIFEST && { print "Manifest already modified. Nothing to do."; exit 0; }

AFTER_LINE='Android:name="MainActivity"'
ADDITION='\
  <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:scheme="https" Android:Host="google.com" Android:pathPattern=".*"></data>\
  </intent-filter>
';

sed -i -e "/${AFTER_LINE}/a${ADDITION}" $MANIFEST

Das hat endlich funktioniert. Es ist keine Änderung an config.xml erforderlich, wenn Sie den Hook-Pfad verwenden. Ich hoffe das hilft jemandem in Not.

PS: Ich bin überzeugt, dass Cordova eine großartige Technologie ist, aber ich habe selten eine derart schlecht dokumentierte Bibliothek gesehen. 

2