मोबाइल संस्करण Android में गूगल प्ले स्टोर का खुला लिंक


88

मेरे पास मेरे नवीनतम ऐप में मेरे अन्य ऐप के लिंक हैं, और मैं उन्हें उस तरह से खोलता हूं।

Uri uri = Uri.parse("url");
Intent intent = new Intent (Intent.ACTION_VIEW, uri); 
startActivity(intent);

यह कोड google play store का ब्राउज़र संस्करण खोलता है।

जब मैं अपने फ़ोन से खोलने की कोशिश कर रहा हूँ, तो फ़ोन संकेत देता है कि क्या मैं एक ब्राउज़र या गूगल प्ले का उपयोग करना चाहता हूँ और अगर मैं दूसरा उपयोग करता हूँ तो यह Google play store का मोबाइल संस्करण खोलता है।

क्या आप बता सकते हैं कि यह एक बार में कैसे हो सकता है? मेरा मतलब है कि मुझसे न पूछें, लेकिन सीधे Google play का मोबाइल संस्करण खोलें, जिसे मैं फोन से सीधे खोलते हुए देखता हूं।


1
मैं चाहता हूं कि दूसरे से अंतिम पैराग्राफ मेरे लिए सच था। यहां पाया गया http लिंक का उपयोग करना: developer.android.com/distribute/googleplay/promote/… उपयोगकर्ता को ऐप या ब्राउज़र चुनने के लिए संकेत नहीं देता है। यह हमेशा ब्राउज़र को मानता है। दुर्भाग्य से, मैं market://प्रोटोकॉल का उपयोग नहीं कर सकता । इस व्यवहार को देखकर कोई और भी?
सिलिथक्रूव

जवाबों:


265

आप निर्दिष्ट marketप्रोटोकॉल का उपयोग करना चाहते हैं :

final String appPackageName = "com.example"; // Can also use getPackageName(), as below
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));

ध्यान रखें, यह किसी भी डिवाइस पर क्रैश हो जाएगा जिसमें मार्केट इंस्‍टॉल (एमुलेटर, उदाहरण के लिए) नहीं है। इसलिए, मैं कुछ सुझाव देना चाहूंगा:

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("http://play.google.com/store/apps/details?id=" + appPackageName)));
}

संगति के लिए या उपवर्ग getPackageName()से उपयोग करते समय Context(धन्यवाद @cprcrack !)। आप यहां बाजार के इरादों के बारे में अधिक जानकारी प्राप्त कर सकते हैं: लिंक


ब्राउज़र में निम्नलिखित खोलने से Google Play नहीं खुलता: बाजार: // विवरण? आईडी = पैंडोरा
इगोरगानपोलस्की

1
आईडी पैकेज नाम है, ऐप नाम नहीं। कोशिश करें market://details?id=com.PandoraTV(यह मानते हुए इस एप्लिकेशन को आप चाहते है)।
एरिक

9
यह उत्तर market://ब्राउज़र के माध्यम से वेबसाइट से नहीं, बल्कि आपके स्वयं के ऐप से उपसर्ग का उपयोग करने के बारे में है। मैं इसकी कार्यक्षमता (संस्करण 2.3, 3.x, 4.0, 4.1 और 4.2 पर) और यह स्टॉक ब्राउज़र, क्रोम बीटा 25 और क्रोम 18 के साथ काम करता है।
एरिक

1
हां, Chrome एक ऐप है, लेकिन इसके लिए इस कोड का उपयोग करने के लिए इसके निर्माताओं [Google] की आवश्यकता होगी, न कि लोगों [वेबसाइटों] की वेबसाइट बनाने की। जैसा कि यह खड़ा है, यह कोड उन लोगों की मदद करने के लिए है जो विशेष रूप से अपने ऐप से लिंक को संरचित कर रहे हैं।
एरिक

2
आप getPackageName()ऐप आईडी को स्वतः प्राप्त करने के लिए उपयोग कर सकते हैं ।
cprcrack

6

नीचे दिए गए कोड से आपको मोबाइल संस्करण में Google play sore के प्रदर्शन एप्लिकेशन लिंक के लिए मदद मिल सकती है।

आवेदन लिंक के लिए:

Uri uri = Uri.parse("market://details?id=" + mContext.getPackageName());
Intent myAppLinkToMarket = new Intent(Intent.ACTION_VIEW, uri);

  try {
        startActivity(myAppLinkToMarket);

      } catch (ActivityNotFoundException e) {

        //the device hasn't installed Google Play
        Toast.makeText(Setting.this, "You don't have Google Play installed", Toast.LENGTH_LONG).show();
              }

डेवलपर लिंक के लिए:

Uri uri = Uri.parse("market://search?q=pub:" + YourDeveloperName);
Intent myAppLinkToMarket = new Intent(Intent.ACTION_VIEW, uri);

            try {

                startActivity(myAppLinkToMarket);

            } catch (ActivityNotFoundException e) {

                //the device hasn't installed Google Play
                Toast.makeText(Settings.this, "You don't have Google Play installed", Toast.LENGTH_LONG).show();

            } 

3

आप Google Play पर अपना एप्लिकेशन पृष्ठ खोलने के लिए Android Intents लाइब्रेरी का उपयोग कर सकते हैं जैसे:

Intent intent = IntentUtils.openPlayStore(getApplicationContext());
startActivity(intent);

2
ध्यान दें कि लिंक-केवल उत्तर हतोत्साहित किए जाते हैं, एसओ उत्तर एक समाधान के लिए खोज का अंतिम बिंदु होना चाहिए (बनाम संदर्भों का एक और ठहराव, जो समय के साथ बासी हो जाते हैं)। कृपया लिंक को संदर्भ के रूप में रखते हुए, यहां एक स्टैंड-अलोन सिनोप्सिस जोड़ने पर विचार करें।
क्लेओपेट्रा

4
यह एक अस्वीकरण शामिल करने में सहायक होगा कि यह आपकी लाइब्रेरी है और फ़ंक्शन को स्वीकृत उत्तर के समान ही कार्यान्वित किया जाता है।
ta.speot.is


1

आप यह देख सकते हैं कि क्या Google Play Store ऐप इंस्टॉल है और यदि ऐसा है तो आप "बाज़ार: //" प्रोटोकॉल का उपयोग कर सकते हैं ।

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

0

Google Play पर ऐप पृष्ठ खोलें:

Intent intent = new Intent(Intent.ACTION_VIEW,
                Uri.parse("market://details?id=" + context.getPackageName()));
startActivity(intent);
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.