दिलचस्प पोस्ट
मोबाइल सफारी वापस बटन कैसे एक क्वेरी स्ट्रिंग के भीतर एक सरणी को पारित करने के लिए? मैं वर्ष, महीने, दिनों में किसी व्यक्ति की उम्र की गणना कैसे कर सकता हूं? अजगर स्क्रिप्ट को किसी अन्य पायथन स्क्रिप्ट से कॉल करने का सबसे अच्छा तरीका क्या है? कैसे मोल्स अलगाव ढांचा कार्यान्वित किया जाता है? WHERE खंड में संदर्भ उपनाम (चयन में गणना) XmlArrayItem विशेषता का उपयोग करते हुए XmlArray बिना सीरियलिज़ेबल C # वर्ग पर एक शब्दकोष XML-serialize कैसे करें पायथन में एक पठन-केवल क्लास प्रॉपर्टी कैसे बनानी है? पास पैरामीटर से गुल टास्क एक टेबल से सभी रिकॉर्ड कैसे चुनते हैं जो किसी अन्य तालिका में मौजूद नहीं हैं? C # में जोड़ी-समानांतर चलन या खिड़की गणनाकर्ता स्लाइडिंग "डिफरेंसिंग टाइप-पक्ड पॉइंटर कड़े-अलियासिंग नियमों को तोड़ देगा" चेतावनी आईफ़ोन – एकाधिक दृश्य नियंत्रक को खारिज कर दें एक प्रोग्राम के एपीके फ़ाइल को प्रोग्राम से कैसे प्राप्त करें I

एंड्रॉइड ब्राउज़र में एक लिंक मेरे ऐप को शुरू करें?

क्या ऐसा लिंक करना संभव है जैसे कि:

<a href="anton://useful_info_for_anton_app">click me!</a> 

मेरे एंटोन ऐप को शुरू करने के कारण?

मुझे पता है कि बाजार के प्रोटोकॉल के साथ एंड्रॉइड मार्केट ऐप के लिए यह काम करता है, लेकिन क्या कुछ अन्य ऐप के साथ ऐसा किया जा सकता है?

यहां एक लिंक का एक उदाहरण है जो एंड्रॉइड मार्केट को शुरू करेगा:

 <a href="market://search?q=pname:com.nytimes.android">click me!</a> 

अद्यतन: मैं जेरेरेथिस द्वारा प्रदान किए गए उत्तर महान काम करता है, लेकिन मैं यह उल्लेख करना चाहता हूं कि मुझे <intent-filter> टैग के उप <intent-filter> समिति के आदेश के साथ कुछ परेशानी थी। मेरा सुझाव है कि आप बस एक और <intent-filter> बनाने वाली समस्याओं से बचने के लिए उस टैग में नए उप-समितियों के साथ। उदाहरण के लिए मेरे AndroidManifest.xml इस तरह दिखता है:

 <activity android:name=".AntonWorld" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <intent-filter> <data android:scheme="anton" /> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.BROWSABLE" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> 

Solutions Collecting From Web of "एंड्रॉइड ब्राउज़र में एक लिंक मेरे ऐप को शुरू करें?"

मुझे लगता है कि आप अपने मेनफ़ेस्ट फ़ाइल के <intent-filter> तत्व को देखना चाहते हैं। विशेष रूप से, <data> उप-तत्व के लिए दस्तावेज़ीकरण पर एक नज़र डालें

असल में, आपको क्या करना होगा अपनी स्वयं की योजना को परिभाषित करना की तर्ज पर कुछ:

 <intent-filter> <data android:scheme="anton" /> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <--Not positive if this one is needed ... </intent-filter> 

तब आप अपने ऐप को लिंक्स के साथ लॉन्च करने में सक्षम होना चाहिए जो कि anton: शुरू होता है anton: यूआरआई योजना।

कृपया अपनी तरह की कस्टम योजना का उपयोग न करें !!! यूआरआई योजनाएं एक नेटवर्क वैश्विक नाम स्थान है। क्या आपके पास "एंटोन:" स्कीम विश्वव्यापी है? नहीं? तो इसका इस्तेमाल न करें

एक विकल्प का एक वेब साइट होना है, और उस वेब साइट पर एक विशेष यूआरआई के लिए एक इरादा-फिल्टर है। उदाहरण के लिए, यह वही है जो बाजार अपनी वेबसाइट पर यूआरआई को रोकता है:

  <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:scheme="http" android:host="market.android.com" android:path="/search" /> </intent-filter> 

वैकल्पिक रूप से, "आशय:" योजना है यह आपको लगभग किसी भी आशय का यूआरआई के रूप में वर्णन करने की अनुमति देता है, जो ब्राउजर क्लिक करने पर लॉन्च करने का प्रयास करेगा। ऐसी योजना बनाने के लिए, सबसे अच्छा तरीका है कि आप शुरू किए गए आशय का निर्माण करने के लिए कोड लिखना है, और फिर आशय के परिणाम को प्रिंट करें। (यूटेंट.यूआरआईआईएनटीटीसीईएमईई)

आप इस आशय के साथ कार्रवाई का उपयोग करने के लिए उस गतिविधि का समर्थन करने वाले किसी भी गतिविधि को ढूंढ सकते हैं। सुरक्षा कारणों के लिए, ब्राउज़र लॉन्च करने से पहले अपने आप को स्वचालित रूप से ब्रावस्बल श्रेणी को आशय में जोड़ देगा; यह भी एक ही कारण के लिए आपूर्ति की है किसी भी स्पष्ट घटक पट्टी होगी

इसका उपयोग करने का सबसे अच्छा तरीका, यदि आप यह सुनिश्चित करना चाहते हैं कि यह केवल आपके ऐप को लॉन्च करता है, तो यह आपकी स्वयं की स्कॉ्ड एक्शन और Intent.setPackage () का उपयोग करने के लिए कहने के लिए आशय केवल आपके ऐप पैकेज से मेल खाएगा।

दोनों के बीच व्यापार-बंद:

  • http यूआरआई के लिए आपके पास एक डोमेन है जो आपके पास है। उपयोगकर्ता को हमेशा ब्राउज़र में यूआरआई दिखाने का विकल्प मिलता है। इसमें बहुत अच्छी गिरावट वाली संपत्तियां हैं, जहां आपका ऐप इंस्टॉल नहीं है, वे बस आपकी वेब साइट पर लैंड करेंगे।

  • इरादा यूआरआई की आवश्यकता है कि आपका ऐप पहले ही इंस्टॉल हो जाएगा और केवल एंड्रॉइड फोन पर ही होगा। लगभग किसी भी इरादे की अनुमति दें (लेकिन हमेशा ब्रोशबल श्रेणी में शामिल है और स्पष्ट घटक का समर्थन नहीं करना)। वे आपको लॉन्च को केवल अपने ऐप को सीधे उपयोगकर्ता या ब्राउजर या किसी अन्य ऐप पर जाने के विकल्प के बिना निर्देशित करने की अनुमति देते हैं।

मुझे भी इस मुद्दे का सामना करना पड़ा और कई बेतुका पृष्ठों को देखने के लिए। मैंने सीखा है कि आपके ऐप को ब्राउज़ करने योग्य बनाने के लिए, एक्सएमएल तत्वों का क्रम बदल दें, यह यह है:

 <activity android:name="com.example.MianActivityName" android:label="@string/title_activity_launcher"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <intent-filter> <data android:scheme="http" /> <!-- or you can use deep linking like --> <data android:scheme="http" android:host="xyz.abc.com"/> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.BROWSABLE"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity> 

यह मेरे लिए काम किया और आपकी मदद कर सकता है

मैं खुद को बढ़ावा देने के लिए माफी मांगता हूं, लेकिन मेरे पास स्थानीय लिंक्स से वेब लिंक https://github.com/eusonlito/jquery.applink लॉन्च करने के लिए एक jQuery प्लगइन है

आप इसे आसान उपयोग कर सकते हैं:

 <script> $('a[data-applink]').applink(); </script> <a href="https://facebook.com/me" data-applink="fb://profile">My Facebook Profile</a> 

एक बार आपके ऐप की स्थापना के लिए इरादे और कस्टम यूआरएल योजना के बाद, प्राप्त पेज के शीर्ष पर यह जावास्क्रिप्ट कोड मेरे लिए आईओएस और एंड्रॉइड दोनों पर काम किया है:

 <script type="text/javascript"> // if iPod / iPhone, display install app prompt if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i) || navigator.userAgent.match(/android/i)) { var store_loc = "itms://itunes.com/apps/raditaz"; var href = "/iphone/"; var is_android = false; if (navigator.userAgent.match(/android/i)) { store_loc = "https://play.google.com/store/apps/details?id=com.raditaz"; href = "/android/"; is_android = true; } if (location.hash) { var app_loc = "raditaz://" + location.hash.substring(2); if (is_android) { var w = null; try { w = window.open(app_loc, '_blank'); } catch (e) { // no exception } if (w) { window.close(); } else { window.location = store_loc; } } else { var loadDateTime = new Date(); window.setTimeout(function() { var timeOutDateTime = new Date(); if (timeOutDateTime - loadDateTime < 5000) { window.location = store_loc; } else { window.close(); } }, 25); window.location = app_loc; } } else { location.href = href; } } </script> 

यह केवल एंड्रॉइड ब्राउज़र पर परीक्षण किया गया है। मुझे फ़ायरफ़ॉक्स या ओपेरा के बारे में निश्चित नहीं है कुंजी हालांकि है कि एंड्रॉइड ब्राउज़र आपके लिए window.open(custom_url, '_blank') पर एक अच्छा अपवाद नहीं डाल window.open(custom_url, '_blank') , यह असफल हो जायेगी और null हो जाएगी जो आप बाद में जांच कर सकते हैं।

अपडेट: store_loc = "https://play.google.com/store/apps/details?id=com.raditaz"; का उपयोग कर store_loc = "https://play.google.com/store/apps/details?id=com.raditaz"; Android पर Google Play से लिंक करने के लिए

यहाँ मेरा नुस्खा है:

एक स्थैतिक एचटीएमएल बनाएं जो आपके अनुरोधित एप यूआरएल को रीडायरेक्ट करता है, उस पेज को वेब पर रखे।

इस तरह, आपके द्वारा साझा किए गए लिंक 'असली' लिंक हैं जहां तक ​​Android का संबंध है (वे 'क्लिक करने योग्य' होंगे)।

आप एक नियमित HTTP लिंक साझा कर सकते हैं, http://www.your.server.com/foo/bar.html यह यूआरएल एक साधारण 8 लाइन एचटीएमएल देता है जो आपके ऐप के यूआरआई (विंडो.लिocation = "ब्लैहः // कूू") को रीडायरेक्ट करता है ( ध्यान दें कि 'ब्लाह' को एचटीटीपी या एचटीटीपीएस के लिए कोई और नहीं होना चाहिए)।

एक बार जब आप इसे ऊपर और चलते हैं, तो आप ऊपर बताए गए सभी फैंसी क्षमताओं के साथ एचटीएमएल बढ़ा सकते हैं।

यह अंतर्निहित ब्राउज़र, ओपेरा, और फ़ायरफ़ॉक्स (किसी अन्य ब्राउज़र का परीक्षण नहीं किया है) के साथ काम करता है। फ़ायरफ़ॉक्स पूछता है 'यह लिंक एक आवेदन के साथ खोला जाना चाहिए' (ठीक है, रद्द करें)। अन्य ब्राउज़र जाहिरा तौर पर सुरक्षा के बारे में चिंता नहीं करते हैं, वे केवल ऐप खोलते हैं, कोई सवाल नहीं पूछा।

आप अपने ऐप के गहरे लिंक को संभालने के लिए एक पुस्तकालय पर विचार करना चाह सकते हैं:

https://github.com/airbnb/DeepLinkDispatch

आप एनोटेट किए गए गतिविधि पर इंटेंट फिल्टर जोड़ सकते हैं जैसे कि ऊपर सुझाए गए लोग यह आपके सभी गहरे लिंक्स के लिए पैरामीटर के रूटिंग और पार्सिंग को संभाल देगा। उदाहरण के लिए, आपके मुख्य गतिविधि में ऐसा कुछ हो सकता है:

 @DeepLink("somePath/{useful_info_for_anton_app}") public class MainActivity extends Activity { ... } 

यह भी क्वेरी पैरामीटर को भी संभाल सकता है

मेरी सरल चाल की कोशिश करो:

  public boolean shouldOverrideUrlLoading(WebView view, String url) { if(url.startsWith("classRegister:")) { Intent MnRegister = new Intent(getApplicationContext(), register.class); startActivity(MnRegister); } view.loadUrl(url); return true; } 

और मेरी एचटीएमएल लिंक:

 <a href="classRegister:true">Go to register.java</a> 

या आप <a href = "classRegister: true"> <- "वर्ग फ़ाइल नाम के लिए" सही "मान कर सकते हैं

हालांकि यह स्क्रिप्ट mailto लिंक के लिए काम करते हैं 🙂

  if (url.startsWith("mailto:")) { String[] blah_email = url.split(":"); Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); emailIntent.setType("text/plain"); emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{blah_email[1]}); emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, what_ever_you_want_the_subject_to_be)"); Log.v("NOTICE", "Sending Email to: " + blah_email[1] + " with subject: " + what_ever_you_want_the_subject_to_be); startActivity(emailIntent); }