2012-03-13 7 views
14

मेरे आईफोन पर, मैंने अभी देखा है कि अगर मैं Google खोज (मोबाइल सफारी में) करता हूं और quora.com पर परिणाम चुनता हूं, तो परिणाम पृष्ठ मेरे फोन पर देशी क्वारा ऐप लॉन्च करता है।मोबाइल सफारी से मूल आईओएस ऐप (जैसे क्वारा) पर रीडायरेक्ट कैसे करें?

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

उत्तर

4

आप अपने एप्लिकेशन को आईओएस रनटाइम के साथ पंजीकृत custom URL scheme का उपयोग करके लॉन्च करने के लिए अपने एप्लिकेशन को ट्रिगर कर सकते हैं। फिर अपनी वेबसाइट पर, आने वाले उपयोगकर्ता-एजेंट का पता लगाने के लिए कोड लिखें और यदि आईओएस पता चला है तो नियमित http के बजाय अपना कस्टम यूआरएल उत्पन्न करें।

+4

तो, क्या होता है अगर उनके पास ऐप इंस्टॉल नहीं है? – Callmeed

+0

अच्छा सवाल है, क्योंकि इसे संभालने का कोई मानक तरीका नहीं है। लेकिन [यहां] (http://stackoverflow.com/questions/1108693/is-it-possible-to-register-a-httpdomain-based-url-checheme-for-iphone-apps-like/1109200#1109200) है इस साइट के किसी अन्य उपयोगकर्ता द्वारा पोस्ट किया गया एक सभ्य कामकाज। – Perception

+0

यह पता लगाने के लिए कामकाज कहां है कि आपका ऐप त्रुटि संदेश के बिना स्थापित है या नहीं? – kkurni

15

मैं अपने ही संबंधित के जवाब reposting हूँ (लेकिन रूबी-ऑन-रेल-विशिष्ट मूल रूप से किया गया था) यहां से प्रश्न: Rails: redirect_to 'myapp://' to call iOS app from mobile safari

आप जावास्क्रिप्ट window.location का उपयोग कर अनुप्रेषित कर सकते हैं।

नमूना कोड:

<html><head> 
    <script type="text/javascript"> 
     var userAgent = window.navigator.userAgent; 
     if (userAgent.match(/iPad/i) || userAgent.match(/iPhone/i)) { 
     window.location = "myiosapp://" 
     } 
    </script> 
    </head> 
    <body> 
    Some html page 
    </body> 
</html> 
+0

मेरे आईओएस 7 डिवाइस पर काम नहीं करता है। – Jonny

+0

मेरे आईओएस 7 डिवाइस पर काम नहीं करता है अगर मैं वेबस्क्रिप्ट से वेबस्क्रीन को पूर्णस्क्रीन मोड में लॉन्च करता हूं। यह वेबक्लिप के लिए कोई पूर्णस्क्रीन मोड सेटिंग नहीं होनी चाहिए। – Jonny

+0

यदि ऐप इंस्टॉल नहीं है तो यह काम नहीं करेगा। – kkurni

5

बस जे एस कोड का एक छोटा सुधार, एप्लिकेशन इंस्टॉल नहीं है, तो इसे आईट्यून्स स्टोर करने के लिए उपयोगकर्ता भेज देंगे;)

<script type="text/javascript"> 

    // detect if safari mobile 
    function isMobileSafari() { 
     return navigator.userAgent.match(/(iPod|iPhone|iPad)/) && navigator.userAgent.match(/AppleWebKit/) 
    } 
    //Launch the element in your app if it's already installed on the phone 
    function LaunchApp(){ 
     window.open("Myapp://TheElementThatIWantToSend","_self"); 
    }; 

    if (isMobileSafari()){ 
     // To avoid the "protocol not supported" alert, fail must open itunes store to dl the app, add a link to your app on the store 
     var appstorefail = "https://itunes.apple.com/app/Myapp"; 
     var loadedAt = +new Date; 
     setTimeout(
      function(){ 
      if (+new Date - loadedAt < 2000){ 
       window.location = appstorefail; 
      } 
      } 
     ,100); 
     LaunchApp() 

    } 

</script> 
संबंधित मुद्दे