क्या YouTube और मैप्स जैसे iPhone ऐप्स के लिए http + डोमेन-आधारित URL स्कीम को पंजीकृत करना संभव है?


223

जब भी ऐप फोन पर इंस्टॉल होता है, और मोबाइल सफारी के मामले में ऐसा नहीं होता है, तो मैं अपने डोमेन से यूआरएल खोलना चाहता हूं (जैसे http://martijnthe.nl )।

मैंने पढ़ा कि इसके लिए एक अद्वितीय प्रोटोकॉल प्रत्यय बनाना और Info.plist में इसे पंजीकृत करना संभव है, लेकिन ऐप इंस्टॉल नहीं होने की स्थिति में मोबाइल सफारी त्रुटि देगा।

वर्कअराउंड क्या होगा?

एक विचार:

1) http: // URL का उपयोग करें जो किसी भी डेस्कटॉप ब्राउज़र में खुलता है और ब्राउज़र के माध्यम से सेवा प्रदान करता है

2) यूजर-एजेंट की जांच करें और यदि वह मोबाइल सफारी है, तो आईफोन ऐप खोलने के लिए एक myprotocol: // URL (प्रयास) खोलें और यदि यह प्रयास विफल हो जाता है, तो ऐप के डाउनलोड के लिए मोबाइल आईट्यून्स खोलें।

यकीन नहीं होता कि यह काम करेगा ... सुझाव? धन्यवाद!


4
NYC मेट्रो में, बिंगो द्वारा वाईफाई है जो आपको वाईफाई की मुफ्त पहुंच प्रदान करता है यदि आप एक एप्लिकेशन डाउनलोड करते हैं जो वे सुझाते हैं। एक बार जब आप इसे डाउनलोड कर लेते हैं, तो आप सफारी पर वापस चले जाते हैं और यदि यह स्थापित किया गया था तो ब्राउज़र पता लगाता है और फिर आपको एक्सेस प्रदान करता है। किसी भी विचार कैसे किया जा रहा है?
टॉमी

2
यूनिवर्सल लिंक अब बिना किसी त्रुटि संदेश के इस उपयोग के मामले का समर्थन करेंगे। यहां बताया गया है कि अपने डोमेन और ऐप को कैसे कॉन्फ़िगर करें: blog.branch.io/…
एलेक्स ऑस्टिन

जवाबों:


243

मुझे लगता है कि ऐसा करने का कम से कम घुसपैठ तरीका इस प्रकार है:

  1. जांचें कि उपयोगकर्ता-एजेंट iPhone / iPod टच के हैं या नहीं
  2. appInstalledकुकी के लिए जाँच करें
  3. कुकी मौजूद है और सच है, सेट पर सेट है window.locationकरने के लिए your-uri://(या रीडायरेक्ट सर्वर साइड करते हैं)
  4. अगर कुकी मौजूद नहीं है, तो "क्या आपको पता है कि आपकी साइट का नाम आईफोन एप्लीकेशन है?" "हां, मुझे पहले ही मिल गया है", "नहीं, लेकिन मैं इसे आज़माना पसंद करूंगा", और "मुझे अकेला छोड़ दो" बटन।
    1. "Yep" बटन कुकी को सही और पुनर्निर्देशित करने के लिए सेट करता है your-uri://
    2. "Nope" बटन " http://itunes.com/apps/yourappname " पर रीडायरेक्ट करता है जो डिवाइस पर ऐप खोल देगा
    3. "मुझे अकेला छोड़ दें" बटन कुकी को गलत पर सेट करता है और मोडल को बंद कर देता है

दूसरा विकल्प जो मैंने साथ निभाया है, लेकिन पाया कि जावास्क्रिप्ट में निम्नलिखित करना है:

setTimeout(function() {
  window.location = "http://itunes.com/apps/yourappname";
}, 25);

// If "custom-uri://" is registered the app will launch immediately and your
// timer won't fire. If it's not set, you'll get an ugly "Cannot Open Page"
// dialogue prior to the App Store application launching
window.location = "custom-uri://";

16
महान समाधान। यदि आपकी वापसी किसी अन्य एप्लिकेशन के लिए है, तो यह त्रुटि प्रदर्शित किए बिना IMMEDIATELY को लोड करेगा । तो बजाय पर वापस गिरने की itunes.com //phobos.apple.com / ... पॉपअप त्रुटि से बचने के: ... उपयोग itms!
जेबी

47
समस्या : जब window.location="custom-uri://सफल होता है, तो कमबैक टाइमआउट नहीं मारा जाता है। जब उपयोगकर्ता आपके ऐप से ब्राउज़र पर लौटता है, तो टाइमर अभी भी है और ऐप स्टोर लिंक को लॉन्च करेगा। यह खराब उपयोगकर्ता अनुभव है।
जोजो

5
ऐसा लगता है कि कुकीज़ # ios6 में सैंडबॉक्सेड हैं, इसलिए आप किसी दूसरे से एक आवेदन द्वारा तय किए गए कुकी तक पहुंच नहीं सकते हैं। (उदाहरण के लिए ऐप वेबयूआई और सफारी मोबाइल)
ओलिवियर एमबल

2
उपयोगकर्ता के ब्राउज़र में वापस आने पर मूल टाइमआउट को रोकने के लिए कोई भी तरीका ढूंढता है? (ऊपर
बताई गई

2
जोजो का उल्लेख है कि समस्या को हल करने के लिए, केवल टाइमआउट में कोड चलाएं यदि "बहुत समय नहीं" बीत चुका है तो उपयोगकर्ता ने लिंक पर क्लिक किया है। इस समाधान को देखें: stackoverflow.com/a/14751543/533420
kkara

95

जब तक आपका कमबैक कोई अन्य अपलिंक नहीं है तब तक जावास्क्रिप्ट में ऐसा करना काफी संभव है। नाथन के सुझाव पर बिल्डिंग :

<html>
  <head>
    <meta name="viewport" content="width=device-width" />
  </head>
  <body>

    <h2><a id="applink1" href="fb://profile/116201417">open facebook with fallback to appstore</a></h2>
    <h2><a id="applink2" href="unknown://nowhere">open unknown with fallback to appstore</a></h2>
    <p><i>Only works on iPhone!</i></p>    

  <script type="text/javascript">

// To avoid the "protocol not supported" alert, fail must open another app.
var appstorefail = "itms://itunes.apple.com/us/app/facebook/id284882215?mt=8&uo=6";

function applink(fail){
    return function(){
        var clickedAt = +new Date;
        // During tests on 3g/3gs this timeout fires immediately if less than 500ms.
        setTimeout(function(){
            // To avoid failing on return to MobileSafari, ensure freshness!
            if (+new Date - clickedAt < 2000){
                window.location = fail;
            }
        }, 500);    
    };
}

document.getElementById("applink1").onclick = applink(appstorefail);
document.getElementById("applink2").onclick = applink(appstorefail);

</script>
</body>
</html>

यहां एक लाइव डेमो देखें


7
ली के साथ सहमत हूँ, यह एक और अधिक सरल समाधान की तरह लगता है - हालांकि मुझे अभी भी सफारी से त्रुटि संदेश मिलता है अगर ऐप मौजूद नहीं है और यह ऐप स्टोर पर रीडायरेक्ट करता है।
जॉन

2
मैंने इस समाधान का उपयोग Android और iOS दोनों के लिए किया है। मैंने पाया कि अगर मैं टाइमआउट मान को 500 से 100 में बदलता हूं तो मुझे iOS में "खुले हुए पृष्ठ" पॉपअप डायलॉग नहीं मिल सकते हैं। मैंने यह भी पाया कि एंड्रॉइड के लिए टाइमआउट 50 होने की आवश्यकता है
रॉसिनी

14
"Itms-apps:" के बजाय "itms:" का उपयोग करना 1 रीडायरेक्ट को बचाता है और ऐपस्टोर में सीधे ऐप पेज को खोलता है।
जर्मन लैटर


9
क्या किसी को पता है कि ऐप इंस्टॉल नहीं होने और ऐप स्टोर पर रीडायरेक्ट करने से पहले सफारी से "पेज नहीं खोल सकते" त्रुटि संदेश से कैसे बचा जाए?
दाविद

26

IOS 6 उपकरणों के लिए, एक विकल्प है: स्मार्ट ऐप बैनरों के साथ प्रमोटिंग ऐप्स


12
अफसोस स्मार्ट ऐप बैनर केवल मोबाइल सफारी में समर्थित हैं, UIWebviewComponent में नहीं। यदि आपकी साइट छूट के लिए ट्विटर क्लाइंट के अंदर प्रदर्शित होती है तो यह प्रदर्शित नहीं होगी।
ओलिवियर एमबल

24

मैंने पाया कि चयनित उत्तर ब्राउज़र ऐप्स के लिए काम करता है, लेकिन मैं गैर ब्राउज़र ऐप में काम करने वाले कोड के साथ समस्या कर रहा था जो कि एक को लागू करते हैं UIWebView

मेरे लिए समस्या यह थी कि ट्विटर ऐप पर एक उपयोगकर्ता एक लिंक पर क्लिक करेगा UIWebView, जो ट्विटर ऐप के माध्यम से उन्हें मेरी साइट पर ले जाएगा । फिर जब उन्होंने मेरी साइट के एक बटन पर क्लिक किया तो ट्विटर फ़ैंस होने की कोशिश करता है और केवल तभी पूरा होता है window.locationजब साइट उपलब्ध हो। तो क्या होता है एक UIAlertViewपॉप अप कह रहा है कि क्या आप सुनिश्चित करना चाहते हैं कि आप जारी रखना चाहते हैं और फिर तुरंत दूसरे पॉपअप के बिना ऐप स्टोर पर रीडायरेक्ट करते हैं।

मेरे समाधान में iframes शामिल है। यह UIAlertViewएक सरल और सुरुचिपूर्ण उपयोगकर्ता अनुभव के लिए प्रस्तुत किए जाने से बचा जाता है।

jQuery

var redirect = function (location) {
    $('body').append($('<iframe></iframe>').attr('src', location).css({
        width: 1,
        height: 1,
        position: 'absolute',
        top: 0,
        left: 0
    }));
};

setTimeout(function () {
    redirect('http://itunes.apple.com/app/id');
}, 25);

redirect('custom-uri://');

जावास्क्रिप्ट

var redirect = function (location) {
    var iframe = document.createElement('iframe');
    iframe.setAttribute('src', location);
    iframe.setAttribute('width', '1px');
    iframe.setAttribute('height', '1px');
    iframe.setAttribute('position', 'absolute');
    iframe.setAttribute('top', '0');
    iframe.setAttribute('left', '0');
    document.documentElement.appendChild(iframe);
    iframe.parentNode.removeChild(iframe);
    iframe = null;
};

setTimeout(function () {
    redirect('http://itunes.apple.com/app/id');
}, 25);

redirect('custom-uri://');

संपादित करें:

जब पृष्ठ में सबसे नीचे व्हाट्सएप का एक यादृच्छिक बिट नहीं है, तो iframe के लिए पूर्ण स्थिति जोड़ें।

यह भी ध्यान रखना महत्वपूर्ण है कि मुझे एंड्रॉइड के साथ इस दृष्टिकोण की आवश्यकता नहीं मिली है। का उपयोग window.location.hrefठीक काम करना चाहिए।


1
यह काम करता हैं!! धन्यवाद अंत में मुझे एक समाधान मिला जो हर ब्राउज़र पर काम करता है।
koleror

2
अगर मिल जाए तो यह सबसे अच्छा उपाय है। धन्यवाद। अब कोई त्रुटि पॉपअप नहीं है।
बजे

1
@ अगर आप चाहते हैं कि जब यह लिंक किसी लिंक पर क्लिक किया जाए, तो इस कोड को किसी फ़ंक्शन में लपेटें, जिसे लिंक क्लिक किए जाने के बाद कहा जाता है।
cnotethegr8 7

1
@ cnotethegr8 मैंने इसे एक फंक्शन में रखा है और कस्टम url पर पुनर्निर्देशित किया है जो शानदार काम करता है, लेकिन iTunes पर वापस नहीं आता है। यहाँ मेरा कोड है । मैं क्या खो रहा हूँ?
टिम

1
क्या आईओएस 9 में किसी और को इससे परेशानी हुई है। यह अब सफारी में मेरे लिए काम नहीं करता है।
बॉगल्सन

20

IOS9 में Apple ने आखिरकार कुछ http://URL को संभालने के लिए आपके ऐप को पंजीकृत करने की संभावना पेश की : यूनिवर्सल लिंक्स

यह कैसे काम करता है की एक बहुत ही मोटी व्याख्या:

  • आप http://अपने ऐप में कुछ डोमेन (वेब ​​यूआरएल) के लिए यूआरएल खोलने में रुचि की घोषणा करते हैं।
  • निर्दिष्ट डोमेन के सर्वर पर आपको यह इंगित करना होगा कि किस URL को किस ऐप में खोलना है, जिसने सर्वर के डोमेन से URL खोलने में रुचि की घोषणा की है।
  • IOS URL लोड करने की सेवा http://ऊपर बताए गए सेटअप के लिए URL खोलने के सभी प्रयासों की जांच करती है और यदि स्थापित हो तो सही ऐप को स्वचालित रूप से खोलता है; पहले सफारी के माध्यम से जाने के बिना ...

यह iOS पर गहरी लिंकिंग करने का सबसे साफ तरीका है, दुर्भाग्य से यह केवल iOS9 और नए में काम करता है ...


और यह ब्राउज़र के अंदर काम नहीं करता है ... केवल बाहर की तरह, जैसे
इमेज़ेज

9

नाथन और जेबी के उत्तर पर फिर से निर्माण:

Url w / o से ऐप को कैसे लॉन्च करें अतिरिक्त क्लिक करें यदि आप एक समाधान पसंद करते हैं जिसमें लिंक पर क्लिक करने का अंतरिम कदम शामिल नहीं है, तो निम्न का उपयोग किया जा सकता है। इस जावास्क्रिप्ट के साथ, मैं Django / पायथन से एक Httpresponse वस्तु को वापस करने में सक्षम था जो सफलतापूर्वक एक ऐप लॉन्च करता है अगर यह इंस्टॉल हो जाता है या वैकल्पिक रूप से ऐप स्टोर को समय समाप्त होने की स्थिति में लॉन्च करता है। नोट मुझे iPhone 4S पर काम करने के लिए टाइमआउट अवधि को 500 से 100 तक समायोजित करने की आवश्यकता है। अपनी स्थिति के लिए सही पाने के लिए टेस्ट और ट्वीक करें।

<html>
<head>
   <meta name="viewport" content="width=device-width" />
</head>
<body>

<script type="text/javascript">

// To avoid the "protocol not supported" alert, fail must open another app.
var appstorefail = "itms://itunes.apple.com/us/app/facebook/id284882215?mt=8&uo=6";

var loadedAt = +new Date;
setTimeout(
  function(){
    if (+new Date - loadedAt < 2000){
      window.location = appstorefail;
    }
  }
,100);

function LaunchApp(){
  window.open("unknown://nowhere","_self");
};
LaunchApp()
</script>
</body>
</html>

9
window.location = appurl;// fb://method/call..
!window.document.webkitHidden && setTimeout(function () {
    setTimeout(function () {
    window.location = weburl; // http://itunes.apple.com/..
    }, 100);
}, 600);

document.webkitHidden यह पता लगाने के लिए कि क्या आपका ऐप पहले से ही लागू है और वर्तमान सफारी टैब पृष्ठभूमि में जा रहा है, यह कोड www.baidu.com का है


मैंने इस समाधान का परीक्षण किया और पाया कि, यह ठीक से घटनाओं को वितरित करता है, "सफारी इस पृष्ठ को नहीं खोल सकता क्योंकि पता अमान्य है" त्रुटि संवाद प्रकट होता है, क्षण भर में। (यह एक सेकंड के एक अंश के बाद ऑटो-खारिज करता है)।
माइकलहैसन

लोड करने के लिए एक iframe का उपयोग करें appurlऔर weburlअपनी समस्या को हल कर सकते हैं
zyanlu

1
@zyanlu: मैं iFrame के साथ कोशिश की है। bt अभी भी सफारी वही त्रुटि दिखा रहा है।
कुन्जस

5

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

उदाहरण के लिए, यदि आपके पास ट्विटर ऐप इंस्टॉल है, और निम्नलिखित मार्कअप वाले वेबपेज पर नेविगेट करें, तो आपको तुरंत ऐप पर निर्देशित किया जाएगा।

<!DOCTYPE html>
<html>
    <head>
    <title>iOS Automatic Deep Linking</title>
    </head>
    <body>
        <iframe src="twitter://" width="0" height="0"></iframe>
        <p>Website content.</p>
    </body>
</html>

यदि ऐप इंस्टॉल नहीं किया गया है, तो ऐप स्टोर में रीडायरेक्ट करने का एक और अधिक उदाहरण यहां दिया गया है:

<!DOCTYPE html>
<html>
    <head>
    <title>iOS Automatic Deep Linking</title>
    <script src='//code.jquery.com/jquery-1.11.2.min.js'></script>
    <script src='//mobileesp.googlecode.com/svn/JavaScript/mdetect.js'></script>
    <script>
      (function ($, MobileEsp) {
        // On document ready, redirect to the App on the App store.
        $(function () {
          if (typeof MobileEsp.DetectIos !== 'undefined' && MobileEsp.DetectIos()) {
            // Add an iframe to twitter://, and then an iframe for the app store
            // link. If the first fails to redirect to the Twitter app, the
            // second will redirect to the app on the App Store. We use jQuery
            // to add this after the document is fully loaded, so if the user
            // comes back to the browser, they see the content they expect.
            $('body').append('<iframe class="twitter-detect" src="twitter://" />')
              .append('<iframe class="twitter-detect" src="itms-apps://itunes.com/apps/twitter" />');
          }
        });
      })(jQuery, MobileEsp);
    </script>
    <style type="text/css">
      .twitter-detect {
        display: none;
      }
    </style>
    </head>
    <body>
    <p>Website content.</p>
    </body>
</html>

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

1
हां, @mahboudz, यदि आप पाठ को पढ़ते हैं, तो यह केवल एक सरल उदाहरण है यह दिखाने के लिए कि एप्लिकेशन को स्वचालित रूप से रीडायरेक्ट करना संभव है।
q0rban

मैं तब एक अधिक गहन उदाहरण के साथ अनुसरण करता हूं जो वास्तविक वेबसाइट सामग्री दिखाएगा। मैं "ट्विटर ऐप इंस्टॉल नहीं है" टेक्स्ट को हटा सकता हूं अगर यह स्पष्ट हो जाएगा।
q0rban

ios 6 अभी भी पॉपअप प्रदर्शित करता है क्योंकि अमान्य url के कारण उस पृष्ठ को खोला नहीं जा सकता है
आंद्रेई शेंडर

@AndreiShender, यहाँ इस लेखन के समय में iOS उपयोग के आँकड़े हैं: monosnap.com/image/8eXUcpEUi8fm94DiMZIdiIp4xunaln .png iOS 8: 72%, iOS 7: 25%, पुराने संस्करण: 3%
q0rban

4

एक हल।

धब्बा और फ़ोकस का उपयोग करके एक बूलियन साइटेशन सेट करें

//see if our window is active
window.isActive = true;
$(window).focus(function() { this.isActive = true; });
$(window).blur(function() { this.isActive = false; });

अपने लिंक को एक jquery क्लिक हैंडलर से बांधें जो कुछ इस तरह से कॉल करता है।

function startMyApp(){
  document.location = 'fb://';

  setTimeout( function(){
    if (window.isActive) {
        document.location = 'http://facebook.com';
    }
  }, 1000);
}

यदि एप्लिकेशन खुलता है, तो हम विंडो पर ध्यान केंद्रित करेंगे और टाइमर समाप्त हो जाएगा। अन्यथा हमें कुछ नहीं मिलता है और हम सामान्य फेसबुक url लोड करते हैं।


सुझाव के लिए बहुत बहुत धन्यवाद। मुझे इस समस्या का सामना करना पड़ रहा है कि "लॉन्च एक्सटर्नल एप्लिकेशन" संवाद ध्वज को निष्क्रिय करने के लिए धब्बा के लिए पर्याप्त लगता है। ऐसा तब भी होता है जब ऐप इंस्टॉल नहीं होता है (जैसे, डेस्कटॉप पर iPhone ऐप लॉन्च करने के लिए लिंक पर क्लिक करने पर)। विचार?
फ्लक्सन

2

जहाँ तक मुझे पता है आप नहीं कर सकते, तो पूरे OS को एक http:+ डोमेन URL समझ लें । आप केवल नई योजनाओं को पंजीकृत कर सकते हैं (मैं x-darkslide:अपने ऐप में उपयोग करता हूं)। ऐप इंस्टॉल होने पर मोबाइल सफारी ऐप को सही तरीके से लॉन्च करेगा।

हालांकि, आपको उस मामले को संभालना होगा जहां ऐप "अभी भी यहां" के साथ स्थापित नहीं है। आईट्यून्स से ऐप डाउनलोड करने के लिए इस लिंक पर क्लिक करें। अपने वेब पेज में


2
यह नहीं रह गया है सही है: iOS9 और हाल ही में Android संस्करण के साथ आप कुछ के लिए सुनने के लिए अपने अनुप्रयोग रजिस्टर कर सकते हैं httpयूआरएल
SEVERIN

0

उपयोगकर्ता-एजेंट की जाँच करें और यदि वह मोबाइल सफारी है, तो iPhone ऐप खोलने के लिए एक myprotocol: // URL (प्रयास) खोलें और यदि यह प्रयास विफल रहता है, तो ऐप के डाउनलोड करने के लिए मोबाइल iTunes को खोलें

यह मेरे लिए एक उचित दृष्टिकोण लगता है, लेकिन मुझे नहीं लगता कि आप इसे दूसरे रिज़ॉर्ट के रूप में मोबाइल इटून्स खोलने में सक्षम होंगे। मुझे लगता है कि आपको एक या दूसरे को चुनना होगा - या तो अपने ऐप पर या अप्रत्यक्ष रूप से पुन: निर्देशित करें।

यानी यदि आप मायप्रोकोल के लिए पुनर्निर्देशित करते हैं: //, और ऐप फोन पर नहीं है, तो आपको पुन: itunes पर पुनर्निर्देशित करने का दूसरा मौका नहीं मिलेगा।

आप शायद पहले एक (iphone अनुकूलित) लैंडिंग पृष्ठ पर रीडायरेक्ट कर सकते हैं और उपयोगकर्ता को आपके ऐप पर क्लिक करने का विकल्प दे सकते हैं, या यदि उनके पास नहीं है तो ऐप प्राप्त करने के लिए itunes करने के लिए? लेकिन, आप वहां सही काम करने के लिए उपयोगकर्ता पर भरोसा करेंगे। (संपादित करें: हालांकि आप एक कुकी सेट कर सकते हैं ताकि यह केवल पहली बार होने वाली बात हो?)


1
यह गलत है। यदि कोई त्रुटि दिखाई गई है कि पृष्ठ खोला नहीं जा सकता है (ऐप इंस्टॉल नहीं किया गया है), जेएस अभी भी निष्पादित किया गया है। यही कारण है कि आप एक और कमबैक समाधान के लिए पुनर्निर्देशित कर सकते हैं।
एरिक

0

पॉप-अप की समस्या को ठीक करने की कोशिश में, मुझे पता चला कि Apple के पास इस चिंता का एक तरीका था।

दरअसल, जब आप इस लिंक पर क्लिक करते हैं , यदि आपने एप्लिकेशन इंस्टॉल किया है, तो इसे फिर से चालू किया जाता है; अन्यथा, आपको बिना किसी पॉप-अप के वेबपेज पर भेज दिया जाएगा।


3
मैं बहुत गहराई से खोदता हूं कि वह लिंक कैसे काम कर रहा था, और सबसे अच्छा मैं इसके साथ आ सकता हूं यह एक जावास्क्रिप्ट समाधान बिल्कुल भी नहीं है। लगता है कि Apple ने अपने ऐप के लिए एक विशेष URL हैंडलर पंजीकृत किया है जिसे कस्टम प्रोटोकॉल की आवश्यकता नहीं है और इसके बजाय URL स्ट्रिंग पर कुछ मिलान करना है। आपके द्वारा भेजे गए लिंक को 303 के साथ तुरंत यहां भेज दिया जाएगा । यदि आप अपने आप को एक ईमेल में उस लिंक को भेजते हैं, तो आप देख सकते हैं कि उस पर क्लिक करने पर सीधे AppStore ऐप लाया जाएगा यदि इंस्टॉल किया गया है
Casey

बहुत ही रोचक। आप सही हैं: यदि मैं इस पर क्लिक करता हूं, तो यह AppStore ऐप को स्थापित करता है। लेकिन अगर आप "पवित्र दिन" तक कुछ मापदंडों को हटाते हैं, तो यह सफारी के भीतर लाता है। Apple विशेष URL योजना को पंजीकृत कर सकता है ...
शीर्षक 17

@Titignes, क्या आप इस तरह से ऐप या वेब पेज खोलने के लिए विस्तृत कर सकते हैं। ऐसी यूआरएल बनाने के लिए क्या पैटर्न है?
आंद्रेई शेंडर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.