2013-08-07 4 views
8

so bemerkte ich nach here, können Sie einen Link auf der Website setzen und Benutzer haben, darauf zu klicken. Wenn der Nutzer die App installiert hat, wird die App gestartet. Wenn die App nicht installiert wurde, wird der Google Play Store gestartet und sucht nach dem bestimmten Paket, was ein großartiges Feature ist !! aber von meinem Verständnis, wird dies die Fähigkeit zu übergeben Referral String zu spielen Speicher verlieren.Wie kann ich Daten an Android Market mit dem neuen Schema auf Chrom übergeben?

Gemäß here können Sie eine Verknüpfung wie market://details?id=your.package.name&referrer=YourReferrerString haben. Wenn in der App ein Broadcast-Empfänger eingerichtet ist, können Sie die Referrer-Zeichenfolge abfangen, aber wie kann ich das gleiche Ziel erreichen, wenn ich die erste Methode aus here verwendet habe?

here ist der einzige Thread, den ich finden kann, der über die neue (?) Funktion in Chrome spricht, aber es schien nicht meine Frage zu beantworten.

Danke !!

+0

Soweit ich weiß, das Referrer-Feature ist jetzt ziemlich vollständig (Post 3.1) sowieso gebrochen. – kabuko

+0

wirklich? seit wann? Ich konnte die Referrer-Funktion noch früher über den Link "market: // details? Id = your.package.name & referrer = YourReferrerString" – user1865027

+0

nutzen. Ich vermute, dass die neue Absicht, die in Chrome eingeführt wurde, möglicherweise noch nicht abgeschlossen ist. Die Dokumentation ist schüchtern, um über mehr zu reden .... – user1865027

Antwort

3

Stellt sich als ziemlich einfach heraus. Der Standard-Referrer von Chrome ist "com.android.chrome". Außer Kraft setzen diese durch &referrer= nach Paket in Ihrer Absicht setzen: // URI, zum Beispiel:

var g_intent = "intent://" + code + 
    "/#Intent;scheme=yourscheme;package=com.your.app&referrer=code%3D" + 
    code + ";launchFlags=268435456;end"; 

Hier ist ein Kern, der die Javascript-Teil der Lösung vollständiger und fällt auch wieder zu einem normalen Markt Link, wenn die Absicht erklärt : // Schema funktioniert nicht: https://gist.github.com/akent/dec1b4b7383436b4623e

Und in Ihrem Java-Code:

public static class InstallReferrerReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     String referrer = intent.getStringExtra("referrer"); 
     // Do things with your referrer here 
    } 
} 

Und in AndroidManifest.xml:

<receiver android:name=".YourActivity$InstallReferrerReceiver" android:exported="true"> 
     <intent-filter> 
      <action android:name="com.android.vending.INSTALL_REFERRER" /> 
     </intent-filter> 
    </receiver> 
+0

Ich hatte ein Problem mit dieser Lösung. Die App erhielt nicht immer die Absicht extra mit dem Referrer. Schließlich habe ich das Branch Deeplink SDK verwendet, das diese Inaktivierung an die Deeplinking-Funktionen anwendet. –

+0

"Standard-Referrer von Chrome ist 'com.android.chrome" Vielen Dank dafür. Eine weitere Frage, falls das Intention-Schema nicht funktioniert und die App auf den Markt umgeleitet wird, wird der Referrer ebenfalls mitgeführt? –

Verwandte Themen