Stack Overflownthis question में पूछा:ऐप्स लॉन्च करें - खिड़कियों
हर रेपो पर, GitHub कि एक बटन "डेस्कटॉप में क्लोन" (: https://github.com/github/developer.github.com उदाहरण) लेबल किया गया है है। यदि आपके पास मैक के लिए गिटहब स्थापित है, तो href "github-mac: // openRepo/https://github.com/github/developer.github.com" जैसा कुछ है। यह मैक के लिए गिटहब खोलता है और रेपो क्लोन करने की पेशकश करता है। यदि आप नहीं करते हैं, href "http://mac.github.io" है। यह मैक के लिए गिटहब के लिए एक डाउनलोड पेज है। मैं अपनी वेबसाइट पर कुछ ऐसा करना चाहता हूं: अगर स्थापित हो तो मेरा ऐप खोलें और डाउनलोड करने के लिए रीडायरेक्ट करें। यह सर्वोत्तम कैसे हो सकता है पूरा किया?
जवाब Github Conduit के बारे में था, लेकिन, जहाँ तक मुझे पता है, Github नाली केवल Github for Mac के लिए है।
मेरे पास एक ही प्रश्न है, केवल विंडोज ऑपरेटिंग सिस्टम के लिए। गिटहब कैसे जानता है कि कंप्यूटर पर गिटहब स्थापित है या नहीं?
रूप deepcurioustheir answer में कहा, हम निम्नलिखित कोड है, तो एक प्रोटोकॉल पंजीकृत किया गया है की जाँच करता है कि उपयोग करने की आवश्यकता:
$("a[href*='github-windows://']").click(function(e) {
var el = $(this);
setTimeout(function() {
window.location = el.data("data-href-alt");
}, 200);
// once you do the custom-uri, it should properly execute the handler, otherwise, the settimeout that you set before will kick in
window.location = el.data("href");
e.preventDefault();
});
और मैं निम्नलिखित HTML लिंक है:
<a href="github-windows://openRepo/https://github.com/jquery/api.jqueryui.com" data-href-alt="https://www.example.com/app-not-installed">Clone in Desktop</a>
यदि ऐप इंस्टॉल किया गया है, तो Google क्रोम मुझे एक बाहरी प्रोटोकॉल अनुरोध (नीचे) देता है, इसलिए मुझे लगता है कि इसे काम करना चाहिए (हालांकि यह मेरे कंप्यूटर पर कुछ भी नहीं करता है)। लेकिन, यदि ऐप इंस्टॉल नहीं है, तो यह data-href-alt
पृष्ठ पर नहीं जाता है।
उदाहरण के लिए, यदि मैं कोड में सभी उदाहरणों में github-windows://
some-uninstalled-app://
बदलता हूं, तो लिंक कुछ भी नहीं करता है।
मैं बस अनुमान लगा रहा हूं लेकिन यह जानकर कि कस्टम प्रोटोकॉल हैंडलर कैसे काम करते हैं, शायद यह पता चला है कि इसका कस्टम प्रोटोकॉल संभाला गया है या नहीं। यदि हां, तो उसका ऐप शुरू हो जाएगा। यदि नहीं, तो यह रीडायरेक्ट करता है। तो आपका प्रश्न यह जानने के लिए उबलता है कि किसी दिए गए कस्टम प्रोटोकॉल के लिए एक हैंडलर स्थापित है या नहीं। Https://stackoverflow.com/questions/24779312/simplest-cross-browser-check-if-protocol-handler-is-registered – sashoalm
http://stackoverflow.com/questions/836777/how-to-detect-browsers देखें -प्रोटोकॉल-हैंडलर –
मुझे लगता है कि यह [WebApps] (http://webapps.stackexchange.com) में हो सकता है। आप वहां बेहतर भाग्य प्राप्त कर सकते हैं! ':)' – sircapsalot