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:
Auswahl zum Öffnen der App oder des Browsers:
Nachdem Sie auf die App-Auswahl geklickt haben, wird die Twitter-App geöffnet:
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.
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.
Gehen Sie einfach dieses Deeplinking Google-Dokument durch. Sie werden von diesem Deep Linking-Konzept erfahren.
Ich hoffe, das hilft einem Körper.
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>
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.