2013-09-06 26 views
5

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

लेकिन निश्चित रूप से मैं केवल यह दिखाना चाहता हूं कि ऐप होम स्क्रीन में नहीं जोड़ा गया है या नहीं।

क्या कोई यह जानता है कि यह कैसे करें? किसी भी इनपुट की सराहना की, धन्यवाद।

+0

यह लिंक आपके लिए दिलचस्प हो सकता है: https://github.com/w3c/manifest/issues/417। – Marco

उत्तर

-1

पहले आप डिवाइस

List<ApplicationInfo> packs = pm.getInstalledApplications(0); 

तो आप getLaunchIntentForPackage()

अब जब कि आप अपने डिवाइस पर इंस्टॉल किए गए पैकेज की सूची मिल गया है उन के माध्यम से, पुनरावृति का उपयोग पर क्षुधा की सूची प्राप्त और प्रत्येक आइटम पर getLaunchIntentForPackage() को कॉल करें।

यदि कोई वैध इरादा वापस किया जाता है, तो यह लॉन्चर पर मौजूद है, अन्यथा यदि शून्य वापस आ गया है, तो पैकेज लॉन्चर स्क्रीन से लॉन्च नहीं होता है। ध्यान दें कि होम स्क्रीन शॉर्टकट लॉन्चर ऐप्स का सबसेट है।

+0

धन्यवाद, अहमद। क्या मुझे अपराह्न प्राप्त करने के लिए वादा किया जाएगा .getInstalled अनुप्रयोग (0); मेरे वेब ऐप से? ऐसा लगता है कि यह मूल जावा है या? –

+0

मुझे यकीन नहीं है कि –

+0

कैसे करें यह आप किसी वेब पेज में नहीं कर सकते हैं। – Marco

2

संक्षिप्त उत्तर यह है: एक वेब साइट से आप नहीं कर सकते हैं।

लंबा उत्तर यह है: किसी वेबसाइट से आप क्रोम में संकेत प्राप्त कर सकते हैं।

Android पर Chrome दो नई सुविधाओं 1) Web App Manifest का वर्णन करता है कि क्या home screen and how it should look on the homescreen से प्रक्षेपित किया जाना चाहिए, और 2) क्रोम अब एक beforeinstallprompt घटना है कि वेब एप्लिकेशन हमें लगता है कि कि एप्लिकेशन की तरह कर रहे हैं और हो सकता है के लिए ट्रिगर करेगा होमस्क्रीन में स्थापित

onbeforeinstallprompt ईवेंट के लिए कई मानदंड हैं जो आग लगने के लिए हैं जो इसे "ठीक" हेरिस्टिक (हालांकि मुझे संदेह नहीं है)।

घटना केवल आग यदि:

  • साइट एक प्रकट किया है, https पर है और एक सेवा कार्यकर्ता है। (यह काफी खिंचाव हो सकता है)।
  • उपयोगकर्ता ने कई बार साइट से जुड़ा हुआ है (अभी, कम से कम 5 मिनट के भीतर दो बार)।
  • उपयोगकर्ता ने पहले से ही अपनी साइट होम स्क्रीन पर नहीं जोड़ा है।

तो संक्षेप में, यह जटिल और झूठी सकारात्मक और झूठी नकारात्मकताओं से भरा है। हालांकि अगर आप ऐसा करना चाहते हैं तो पता लगाएं कि क्या आपको उपयोगकर्ता को होमस्क्रीन पर अपना वेब-ऐप जोड़ने के लिए संकेत देने के लिए बैनर प्रदर्शित करना चाहिए, तो क्रोम के पास पहले से ही आपके लिए समाधान है।

हमारे पास samples on our samples site की पूरी श्रृंखला भी है।

2

हाँ, आप कर सकते हैं।

तकनीकी रूप से एक पेज क्रोम ब्राउज़र टैब में खुला सीधे जाँच नहीं कर सकते हैं एक होम स्क्रीन शॉर्टकट मौजूद है या नहीं, पेज का स्थानीय डेटा (localStorage, IndexedDB) होम स्क्रीन उदाहरण और ब्राउज़र टैब के बीच साझा किया जाता है, तो यह करने के लिए इस्तेमाल किया जा सकता होम स्क्रीन संस्करण के अस्तित्व को संवाद करें। यदि एप्लिकेशन होम स्क्रीन से चल रहा है

  1. का पता लगाने
  2. यदि यह होम स्क्रीन से भाग गया है, localStorage
  3. लाभ के लिए इस तथ्य को बचाने! (किसी भी टैब में localStorage से पढ़कर)

एप्लिकेशन (जो तभी संभव है जब होम स्क्रीन से शुरू की है) स्टैंडअलोन ध्यान में रखते हुए है, सीएसएस मीडिया क्वेरी (display-mode: standalone) से मेल खाएगी। जावास्क्रिप्ट में आप का उपयोग कर इसे पढ़ सकते हैं:

matchMedia('(display-mode: standalone)').matches 

(Btw: इस के अमानक आईओएस बराबर navigator.standalone है, लेकिन आईओएस होम स्क्रीन और सफारी के बीच स्थिति साझा नहीं करता है, तो आप भाग्य से बाहर वहाँ हो)।

हालांकि, कस्टम निर्देशों के बजाय मैं "प्रगतिशील वेब ऐप" के लिए क्रोम के मानदंडों को पूरा करने का सुझाव देता हूं और क्रोम को आपके लिए संकेत देता हूं।

0

मुझे लगता है कि आप इसे कर सकते हैं। Manifest.json में start_url में बस क्वेरी स्ट्रिंग जोड़ें और अपनी जावास्क्रिप्ट जांच में अगर यूआरएल शुरू हो रहा है तो क्वेरी स्ट्रिंग है। यदि क्वेरी स्ट्रिंग पाई जाती है तो हाँ ऐप इंस्टॉल हो जाता है।

संबंधित मुद्दे