698 Stimmen

Wie öffne ich den Google Play Store direkt aus meiner Android-Anwendung?

Ich habe den Google Play Store mit folgendem Code geöffnet

Intent i = new Intent(android.content.Intent.ACTION_VIEW);
i.setData(Uri.parse("https://play.google.com/store/apps/details?id=my packagename "));
startActivity(i);.

Aber es zeigt mir eine Vollständige Aktionsansicht an, um die Option (Browser/Play Store) auszuwählen. Ich möchte die Anwendung direkt im Play Store öffnen.

0 Stimmen

6voto

Nikolay Shindarov Punkte 1258

Dieser Link öffnet die App automatisch in market://, wenn Sie auf Android sind, und im Browser, wenn Sie auf dem PC sind.

https://play.app.goo.gl/?link=https://play.google.com/store/apps/details?id=com.app.id&ddl=1&pcampaignid=web_ddl_1

0 Stimmen

Tatsächlich habe ich in meiner Aufgabe ein Webview und in diesem Webview muss ich eine beliebige URL laden. Wenn jedoch eine Playstore-URL geöffnet wird, wird ein "Playstore öffnen" Button angezeigt. Daher muss ich die App öffnen, wenn auf diesen Button geklickt wird. Es wird für jede Anwendung dynamisch sein, also wie kann ich das verwalten?

0 Stimmen

Versuchen Sie einfach den Link https://play.app.goo.gl/?link=https://play.google.com/store/‌​apps/details?id=com.‌​app.id&ddl=1&pcampai‌​gnid=web_ddl_1

5voto

Tahmid Punkte 315

Wenn Sie den Google Play Store von Ihrer App aus öffnen möchten, verwenden Sie diesen Befehl direkt: market://details?gotohome=com.yourAppName, er wird die Google Play Store-Seiten Ihrer App öffnen.

Zeigen Sie alle Apps eines bestimmten Herausgebers

Suchen Sie nach Apps, die die Abfrage in ihrem Titel oder ihrer Beschreibung verwenden

Referenz: https://tricklio.com/market-details-gotohome-1/

0 Stimmen

Das scheint leider nicht mehr zu funktionieren. Es stürzt in einer Android-App ab und löst in iOS eine Promise-Ausnahme aus (was zu erwarten war, aber es lohnt sich, es zu testen)

4voto

MoGa Punkte 625

Hier ist der endgültige Code aus den obigen Antworten, der zuerst versucht, die App mit der Google Play Store-App und speziell dem Play Store zu öffnen. Wenn dies fehlschlägt, wird die Aktion Ansicht unter Verwendung der Webversion gestartet: Credits an @Eric, @Jonathan Caballero

public void goToPlayStore() {
        String playStoreMarketUrl = "market://details?id=";
        String playStoreWebUrl = "https://play.google.com/store/apps/details?id=";
        String packageName = getActivity().getPackageName();
        try {
            Intent intent =  getActivity()
                            .getPackageManager()
                            .getLaunchIntentForPackage("com.android.vending");
            if (intent != null) {
                ComponentName androidComponent = new ComponentName("com.android.vending",
                        "com.google.android.finsky.activities.LaunchUrlHandlerActivity");
                intent.setComponent(androidComponent);
                intent.setData(Uri.parse(playStoreMarketUrl + packageName));
            } else {
                intent = new Intent(Intent.ACTION_VIEW, Uri.parse(playStoreMarketUrl + packageName));
            }
            startActivity(intent);
        } catch (ActivityNotFoundException e) {
            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(playStoreWebUrl + packageName));
            startActivity(intent);
        }
    }

3voto

Yogendra Punkte 4131

KOTLIN : Erweiterung im Kontext erstellen.

fun Context.openPlayStoreApp(pkgName:String?){
    if(!pkgName.isNullOrEmpty()) {
        try {
            startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=$pkgName")))
        } catch (e: ActivityNotFoundException) {
            startActivity(
                Intent(
                    Intent.ACTION_VIEW,
                    Uri.parse("https://play.google.com/store/apps/details?id=$pkgName")
                )
            )
        }
    }
}

Hoffentlich sollte es funktionieren.

3voto

Arpan Sarkar Punkte 2146

Meine Kotlin-Erweiterungsfunktion für diesen Zweck

fun Context.canPerformIntent(intent: Intent): Boolean {
        val mgr = this.packageManager
        val list = mgr.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY)
        return list.size > 0
    }

Und in Ihrer Aktivität

val uri = if (canPerformIntent(Intent(Intent.ACTION_VIEW, Uri.parse("market://")))) {
            Uri.parse("market://details?id=" + appPackageName)
        } else {
            Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)
        }
        startActivity(Intent(Intent.ACTION_VIEW, uri))

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X