programing

안드로이드 응용 프로그램에서 직접 Google Play Store를 여는 방법은 무엇입니까?

powerit 2023. 6. 17. 09:47
반응형

안드로이드 응용 프로그램에서 직접 Google Play Store를 여는 방법은 무엇입니까?

다음 코드를 사용하여 Google Play 스토어를 열었습니다.

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);.

옵션(브라우저/플레이 스토어)을 선택할 수 있는 전체 작업 보기가 표시됩니다.저는 플레이 스토어에서 애플리케이션을 직접 열어야 합니다.

접두사를 사용하여 이 작업을 수행할 수 있습니다.

자바

final String appPackageName = getPackageName(); // getPackageName() from Context or Activity object
try {
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));
} catch (android.content.ActivityNotFoundException anfe) {
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));
}

코틀린

try {
    startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=$packageName")))
} catch (e: ActivityNotFoundException) {
    startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=$packageName")))
}

우리는 사용합니다.try/catch여를차는이유는하 때문에 합니다.Exception대상 장치에 Play Store가 설치되어 있지 않은 경우 이 느려집니다.

참고: 모든 앱은 다음을 처리할 수 있는 것으로 등록할 수 있습니다.market://details?id=<appId>URI. 만약 당신이 구글 플레이를 구체적으로 목표로 삼고 싶다면, Berťak의 답변에 있는 해결책이 좋은 대안입니다.

여기에 제시된 많은 답변은 다음과 같습니다. Uri.parse("market://details?id=" + appPackageName)) Google Play를 여는 것은 충분하지 않다고 생각합니다.

일부 타사 응용 프로그램은 체계가 정의된 자체 인텐트 필터를 사용할 수 있으므로 Google Play 대신 제공된 URI를 처리할 수 있습니다(예: 이 상황을 경험했습니다).SnapPea 애플리케이션).문제는 "Google Play Store를 여는 방법"입니다. 따라서 다른 응용 프로그램을 열지 않으려는 것 같습니다.또한 앱 등급은 GP Store 앱 등에서만 적용됩니다.

Google Play를 열고 Google Play만 열려면 다음 방법을 사용합니다.

public static void openAppRating(Context context) {
    // you can also use BuildConfig.APPLICATION_ID
    String appId = context.getPackageName();
    Intent rateIntent = new Intent(Intent.ACTION_VIEW,
        Uri.parse("market://details?id=" + appId));
    boolean marketFound = false;

    // find all applications able to handle our rateIntent
    final List<ResolveInfo> otherApps = context.getPackageManager()
        .queryIntentActivities(rateIntent, 0);
    for (ResolveInfo otherApp: otherApps) {
        // look for Google Play application
        if (otherApp.activityInfo.applicationInfo.packageName
                .equals("com.android.vending")) {

            ActivityInfo otherAppActivity = otherApp.activityInfo;
            ComponentName componentName = new ComponentName(
                    otherAppActivity.applicationInfo.packageName,
                    otherAppActivity.name
                    );
            // make sure it does NOT open in the stack of your activity
            rateIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            // task reparenting if needed
            rateIntent.addFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
            // if the Google Play was already open in a search result
            //  this make sure it still go to the app page you requested
            rateIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            // this make sure only the Google Play app is allowed to
            // intercept the intent
            rateIntent.setComponent(componentName);
            context.startActivity(rateIntent);
            marketFound = true;
            break;

        }
    }

    // if GP not present on device, open web browser
    if (!marketFound) {
        Intent webIntent = new Intent(Intent.ACTION_VIEW,
            Uri.parse("https://play.google.com/store/apps/details?id="+appId));
        context.startActivity(webIntent);
    }
}

요점은 구글 플레이 외에 더 많은 애플리케이션이 우리의 의도를 열 수 있을 때, 앱-선택기 대화상자가 건너뛰고 GP 앱이 직접 시작된다는 것입니다.

업데이트: 때때로 앱의 프로필을 열지 않고 GP 앱만 여는 것처럼 보입니다.트레버 와일리가 논평에서 제안했듯이,Intent.FLAG_ACTIVITY_CLEAR_TOP문제해결 수있다니습할 (직접 (아직 직접 테스트하지 않았습니다...)

다음 내용을 이해하려면 이 답변을 참조하십시오.Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED 그렇습니다.

Android Developer 공식 링크에서 튜토리얼 단계별로 보고 플레이 스토어에서 애플리케이션 패키지의 코드를 얻거나 플레이 스토어 앱이 존재하지 않으면 웹 브라우저에서 애플리케이션을 엽니다.

Android 개발자 공식 링크

https://developer.android.com/distribute/tools/promote/linking.html

응용 프로그램 페이지에 연결

웹사트서:https://play.google.com/store/apps/details?id=<package_name>

에서: Android 앱에:market://details?id=<package_name>

제품 목록에 연결

웹사트서:https://play.google.com/store/search?q=pub:<publisher_name>

에서: Android 앱에:market://search?q=pub:<publisher_name>

검색 결과에 연결

웹사트서:https://play.google.com/store/search?q=<search_query>&c=apps

에서: Android 앱에:market://search?q=<seach_query>&c=apps

에릭의 대답이 정확하고 베라크의 코드도 작동합니다.저는 이것이 두 가지를 더 우아하게 결합한다고 생각합니다.

try {
    Intent appStoreIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName));
    appStoreIntent.setPackage("com.android.vending");

    startActivity(appStoreIntent);
} catch (android.content.ActivityNotFoundException exception) {
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));
}

을 사용하여setPackage장치가 Play Store를 사용하도록 강제합니다.되어 있지 않은 Play Store가 .Exception잡힐 겁니다

이것을 먹어보세요.

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://details?id=com.example.android"));
startActivity(intent);

실제로 Google Play(또는 다른 앱)를 독립적으로 열려면 위의 모든 답변이 동일한 앱의 새 보기에서 Google Play를 엽니다.

Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.android.vending");

// package name and activity
ComponentName comp = new ComponentName("com.android.vending",
                                       "com.google.android.finsky.activities.LaunchUrlHandlerActivity"); 
launchIntent.setComponent(comp);

// sample to open facebook app
launchIntent.setData(Uri.parse("market://details?id=com.facebook.katana"));
startActivity(launchIntent);

중요한 부분은 실제로 구글 플레이나 다른 앱을 독립적으로 개방한다는 것입니다.

제가 본 대부분의 것들은 다른 답들의 접근법을 사용하고 있으며, 제가 필요로 하는 것은 이것이 누군가에게 도움이 되기를 바라는 것이 아니었습니다.

안부 전해요.

Google Play Store 앱이 설치되어 있는지 확인할 수 있으며, 이 경우 "market://" 프로토콜을 사용할 수 있습니다.

final String my_package_name = "........."  // <- HERE YOUR PACKAGE NAME!!
String url = "";

try {
    //Check whether Google Play store is installed or not:
    this.getPackageManager().getPackageInfo("com.android.vending", 0);

    url = "market://details?id=" + my_package_name;
} catch ( final Exception e ) {
    url = "https://play.google.com/store/apps/details?id=" + my_package_name;
}


//Open the app page in Google Play store:
final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
startActivity(intent);

사용 시장://

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + my_packagename));

공식 문서가 사용하는 와 같이.https://market://이것은 Eric 및 M3-n50의 답변과 코드 재사용을 결합합니다(반복하지 마십시오).

Intent intent = new Intent(Intent.ACTION_VIEW)
    .setData(Uri.parse("https://play.google.com/store/apps/details?id=" + getPackageName()));
try {
    startActivity(new Intent(intent)
                  .setPackage("com.android.vending"));
} catch (android.content.ActivityNotFoundException exception) {
    startActivity(intent);
}

GPlay 앱이 존재하는 경우 GPlay 앱으로 열려고 시도하고 기본값으로 돌아갑니다.

이 질문에 대한 대답 중 일부는 구식입니다.

2020년에 제게 효과가 있었던 것은 다음 링크에 따라 선택자를 건너뛰고 플레이 스토어 앱을 직접 여는 의도를 분명히 말한 것입니다.

"Android 앱에서 제품에 연결하려면 URL을 여는 Intent를 만듭니다.이 의도를 구성할 때 "com.android"를 전달합니다."자판"을 "의도"로 변환합니다.setPackage()는 사용자가 선택자 대신 Google Play Store 앱에서 앱의 세부 정보를 볼 수 있도록 합니다."

이것은 구글 플레이에서 com.google.android.apps.maps라는 패키지 이름이 포함된 앱을 볼 수 있도록 사용자에게 지시하기 위해 사용한 코틀린 코드입니다.

val intent = Intent(Intent.ACTION_VIEW).apply {
               data = Uri.parse("http://play.google.com/store/apps/details?id=com.google.android.apps.maps")
               setPackage("com.android.vending")
            }
            startActivity(intent)

그게 누군가에게 도움이 되길 바랍니다!

코틀린:

확장:

fun Activity.openAppInGooglePlay(){

val appId = BuildConfig.APPLICATION_ID
try {
    this.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=$appId")))
} catch (anfe: ActivityNotFoundException) {
    this.startActivity(
        Intent(
            Intent.ACTION_VIEW,
            Uri.parse("https://play.google.com/store/apps/details?id=$appId")
        )
    )
}}

방법:

    fun openAppInGooglePlay(activity:Activity){

        val appId = BuildConfig.APPLICATION_ID
        try {
            activity.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=$appId")))
        } catch (anfe: ActivityNotFoundException) {
            activity.startActivity(
                Intent(
                    Intent.ACTION_VIEW,
                    Uri.parse("https://play.google.com/store/apps/details?id=$appId")
                )
            )
        }
    }

할 수 있는 일:

final Uri marketUri = Uri.parse("market://details?id=" + packageName);
startActivity(new Intent(Intent.ACTION_VIEW, marketUri));

여기서 참조하기:

Android 기기에 Google Play Store가 설치되어 있는지 여부를 확인할 수 없습니다.

파티에서 아주 늦은 시간에 공식 문서가 여기에 있습니다.그리고 설명된 코드는

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(
    "https://play.google.com/store/apps/details?id=com.example.android"));
intent.setPackage("com.android.vending");
startActivity(intent);

이 의도를 구성할 때 전달합니다."com.android.vending"안으로Intent.setPackage()사용자가 선택자 대신 Google Play Store 에서 앱의 세부 정보를 볼 수 있도록 합니다.KOTLIN의 경우

val intent = Intent(Intent.ACTION_VIEW).apply {
    data = Uri.parse(
            "https://play.google.com/store/apps/details?id=com.example.android")
    setPackage("com.android.vending")
}
startActivity(intent)

Google Play Instant를 사용하여 인스턴트 앱을 게시한 경우 다음과 같이 앱을 실행할 수 있습니다.

Intent intent = new Intent(Intent.ACTION_VIEW);
Uri.Builder uriBuilder = Uri.parse("https://play.google.com/store/apps/details")
    .buildUpon()
    .appendQueryParameter("id", "com.example.android")
    .appendQueryParameter("launch", "true");

// Optional parameters, such as referrer, are passed onto the launched
// instant app. You can retrieve these parameters using
// Activity.getIntent().getData().
uriBuilder.appendQueryParameter("referrer", "exampleCampaignId");

intent.setData(uriBuilder.build());
intent.setPackage("com.android.vending");
startActivity(intent);

KOTLIN의 경우

val uriBuilder = Uri.parse("https://play.google.com/store/apps/details")
        .buildUpon()
        .appendQueryParameter("id", "com.example.android")
        .appendQueryParameter("launch", "true")

// Optional parameters, such as referrer, are passed onto the launched
// instant app. You can retrieve these parameters using Activity.intent.data.
uriBuilder.appendQueryParameter("referrer", "exampleCampaignId")

val intent = Intent(Intent.ACTION_VIEW).apply {
    data = uriBuilder.build()
    setPackage("com.android.vending")
}
startActivity(intent)

바로 사용할 수 있는 솔루션:

public class GoogleServicesUtils {

    public static void openAppInGooglePlay(Context context) {
        final String appPackageName = context.getPackageName();
        try {
            context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));
        } catch (android.content.ActivityNotFoundException e) { // if there is no Google Play on device
            context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));
        }
    }

}

에릭의 대답을 토대로.

코틀린

fun openAppInPlayStore(appPackageName: String) {
    try {
        startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=$appPackageName")))
    } catch (exception: android.content.ActivityNotFoundException) {
        startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=$appPackageName")))
    }
}

이 링크는 자동으로 앱을 엽니다.market://Android에 있는 경우와 PC에 있는 경우 브라우저에 있습니다.

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

앱에서 Google Play 스토어를 열고 싶다면 다음 명령어 디렉토리를 사용합니다.market://details?gotohome=com.yourAppName앱의 Google Play 스토어 페이지가 열립니다.

  • 웹: http://play.google.com/store/apps/details?id=
  • 앱: 마켓://market?id=

특정 게시자별로 모든 앱 표시

  • 웹: http://play.google.com/store/search?q=pub :
  • 앱: market://search?q=market:

제목 또는 설명에 쿼리를 사용하는 앱 검색

  • 웹: http://play.google.com/store/search?q=
  • 앱: 마켓://search?q=

참조: https://tricklio.com/market-details-gotohome-1/

위 답변의 마지막 코드는 구글 플레이 스토어 앱을 사용하여 앱을 처음 열고, 특히 플레이 스토어가 실패하면 웹 버전을 사용하여 액션 뷰를 시작합니다: 크레딧 투 @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);
        }
    }

Berťak와 Stefano Munarini의 답변을 결합하여 Rate this App 시나리오와 Show More App 시나리오를 모두 처리하는 하이브리드 솔루션을 만들었습니다.

        /**
         * This method checks if GooglePlay is installed or not on the device and accordingly handle
         * Intents to view for rate App or Publisher's Profile
         *
         * @param showPublisherProfile pass true if you want to open Publisher Page else pass false to open APp page
         * @param publisherID          pass Dev ID if you have passed PublisherProfile true
         */
        public void openPlayStore(boolean showPublisherProfile, String publisherID) {

            //Error Handling
            if (publisherID == null || !publisherID.isEmpty()) {
                publisherID = "";
                //Log and continue
                Log.w("openPlayStore Method", "publisherID is invalid");
            }

            Intent openPlayStoreIntent;
            boolean isGooglePlayInstalled = false;

            if (showPublisherProfile) {
                //Open Publishers Profile on PlayStore
                openPlayStoreIntent = new Intent(Intent.ACTION_VIEW,
                        Uri.parse("market://search?q=pub:" + publisherID));
            } else {
                //Open this App on PlayStore
                openPlayStoreIntent = new Intent(Intent.ACTION_VIEW,
                        Uri.parse("market://details?id=" + getPackageName()));
            }

            // find all applications who can handle openPlayStoreIntent
            final List<ResolveInfo> otherApps = getPackageManager()
                    .queryIntentActivities(openPlayStoreIntent, 0);
            for (ResolveInfo otherApp : otherApps) {

                // look for Google Play application
                if (otherApp.activityInfo.applicationInfo.packageName.equals("com.android.vending")) {

                    ActivityInfo otherAppActivity = otherApp.activityInfo;
                    ComponentName componentName = new ComponentName(
                            otherAppActivity.applicationInfo.packageName,
                            otherAppActivity.name
                    );
                    // make sure it does NOT open in the stack of your activity
                    openPlayStoreIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    // task reparenting if needed
                    openPlayStoreIntent.addFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
                    // if the Google Play was already open in a search result
                    //  this make sure it still go to the app page you requested
                    openPlayStoreIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    // this make sure only the Google Play app is allowed to
                    // intercept the intent
                    openPlayStoreIntent.setComponent(componentName);
                    startActivity(openPlayStoreIntent);
                    isGooglePlayInstalled = true;
                    break;

                }
            }
            // if Google Play is not Installed on the device, open web browser
            if (!isGooglePlayInstalled) {

                Intent webIntent;
                if (showPublisherProfile) {
                    //Open Publishers Profile on web browser
                    webIntent = new Intent(Intent.ACTION_VIEW,
                            Uri.parse("http://play.google.com/store/search?q=pub:" + getPackageName()));
                } else {
                    //Open this App on web browser
                    webIntent = new Intent(Intent.ACTION_VIEW,
                            Uri.parse("https://play.google.com/store/apps/details?id=" + getPackageName()));
                }
                startActivity(webIntent);
            }
        }

사용.

  • 게시자 프로필을 열려면
   @OnClick(R.id.ll_more_apps)
        public void showMoreApps() {
            openPlayStore(true, "Hitesh Sahu");
        }
  • PlayStore에서 앱 페이지 열기
@OnClick(R.id.ll_rate_this_app)
public void openAppInPlayStore() {
    openPlayStore(false, "");
}
public void launchPlayStore(Context context, String packageName) {
    Intent intent = null;
    try {
            intent = new Intent(Intent.ACTION_VIEW);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            intent.setData(Uri.parse("market://details?id=" + packageName));
            context.startActivity(intent);
        } catch (android.content.ActivityNotFoundException anfe) {
            startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + packageName)));
        }
    }

이를 위한 나의 코틀린텐스 기능

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

그리고 당신의 활동에서

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))

KOTLIN : 컨텍스트에서 확장자를 만듭니다.

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")
                )
            )
        }
    }
}

효과가 있기를 바랍니다.

여러분, 그것으로부터 실제로 더 많은 것을 얻을 수 있다는 것을 잊지 마세요.예를 들어 UTM 추적을 의미합니다.https://developers.google.com/analytics/devguides/collection/android/v4/campaigns

public static final String MODULE_ICON_PACK_FREE = "com.example.iconpack_free";
public static final String APP_STORE_URI =
        "market://details?id=%s&referrer=utm_source=%s&utm_medium=app&utm_campaign=plugin";
public static final String APP_STORE_GENERIC_URI =
        "https://play.google.com/store/apps/details?id=%s&referrer=utm_source=%s&utm_medium=app&utm_campaign=plugin";

try {
    startActivity(new Intent(
        Intent.ACTION_VIEW,
        Uri.parse(String.format(Locale.US,
            APP_STORE_URI,
            MODULE_ICON_PACK_FREE,
            getPackageName()))).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
} catch (android.content.ActivityNotFoundException anfe) {
    startActivity(new Intent(
        Intent.ACTION_VIEW,
        Uri.parse(String.format(Locale.US,
            APP_STORE_GENERIC_URI,
            MODULE_ICON_PACK_FREE,
            getPackageName()))).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
}

폴백 및 현재 구문이 포함된 코틀린 버전

 fun openAppInPlayStore() {
    val uri = Uri.parse("market://details?id=" + context.packageName)
    val goToMarketIntent = Intent(Intent.ACTION_VIEW, uri)

    var flags = Intent.FLAG_ACTIVITY_NO_HISTORY or Intent.FLAG_ACTIVITY_MULTIPLE_TASK or Intent.FLAG_ACTIVITY_NEW_TASK
    flags = if (Build.VERSION.SDK_INT >= 21) {
        flags or Intent.FLAG_ACTIVITY_NEW_DOCUMENT
    } else {
        flags or Intent.FLAG_ACTIVITY_CLEAR_TASK
    }

    goToMarketIntent.addFlags(flags)

    try {
        startActivity(context, goToMarketIntent, null)
    } catch (e: ActivityNotFoundException) {
        val intent = Intent(Intent.ACTION_VIEW,
                Uri.parse("http://play.google.com/store/apps/details?id=" + context.packageName))

        startActivity(context, intent, null)
    }
}

테스트 완료. 잘 될 겁니다.

val context = LocalContext.current
val onOpenPlayStore: () -> Unit = {
    try {
        LOG.d(tag, "onOpenPlayStore ${context.packageName}")
        val intent = Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=${context.packageName}"))
        startActivity(context, intent, null)
    } catch (e: ActivityNotFoundException) {
        var intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=${context.packageName}"))
        startActivity(context, intent, null)
    }
}

요금 적용의 경우:Playstore로 리디렉션합니다.Float에서는 플랫폼 채널을 통해서 이렇게.

Floating 파트:-

 static const platform = const MethodChannel('rateApp');   // initialize 

탭에서: platform.invokeMethod('urls', {'android_id': 'com.xyz'}),

이제 Android 기본 부품(Java):

private static final String RATEAPP = "rateApp";  // initialize variable

이제 Flutter Engine 구성 기능:

        new MethodChannel(flutterEngine.getDartExecutor().getBinaryMessenger(), RATEAPP)
            .setMethodCallHandler(
                    (call, result) -> {               
                        if (call.method.equals("urls") && call.hasArgument("android_id")) {
                            String id = call.argument("android_id").toString();
                          
                            try {
                                startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("$uri" + id)));
                            } catch (android.content.ActivityNotFoundException anfe) {
                                startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + id)));
                            }
                            result.success("Done");
                        } else {
                            result.notImplemented();
                        }
                    }
            );

언급URL : https://stackoverflow.com/questions/11753000/how-to-open-the-google-play-store-directly-from-my-android-application

반응형