2014-09-03 8 views
5

एक उपयोगकर्ता किसी वेबसाइट मैं निम्नलिखित दो मामलों में से एक चाहते हो जा करने के लिए खोलता है: एप्लिकेशन mycoolapp स्थापित किया गया हैकिसी वेबसाइट से एंड्रॉइड ऐप पर रीडायरेक्ट करें?

  1. तो कस्टम url योजना mycoolapp का उपयोग करके ऐप्स उपयोगकर्ता अनुप्रेषित: //
  2. यदि ऐप इंस्टॉल नहीं है तो किसी अज्ञात पृष्ठ या त्रुटि पॉपअप को पोस्ट या रीडायरेक्ट किए बिना वर्तमान पृष्ठ पर रहें।

    window.location = "mycoolapp://"; 
    

    यह अगर एप्लिकेशन को उपकरण पर स्थापित किया गया है काम करेंगे:

केस 1 आप निम्नलिखित कोड का उपयोग कर सकते आसान है। जब ऐप इंस्टॉल नहीं होता है तो यह उपयोगकर्ता को एक खाली पृष्ठ पर रीडायरेक्ट करता है जो अज्ञात है।

मामले 2 के लिए मेरे पास एक आईफ्रेम का उपयोग करने का समाधान है जो आईओएस और मूल एंड्रॉइड ब्राउज़र पर बहुत अच्छा काम करता है। यह एंड्रॉइड के लिए क्रोम पर काम नहीं करता है।

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; 
};  

redirect('mycoolapp://'); 

एप्लिकेशन इंस्टॉल है जब यह स्थानीय Android ब्राउज़र पर काम कर रहा है, लेकिन Chrome पर Android के लिए वहाँ पर रीडायरेक्ट नहीं कर रहा है। पेज पर कुछ भी नहीं होता है।

ऐप इंस्टॉल नहीं होने पर रिक्त पृष्ठ पर रीडायरेक्ट किए बिना एंड्रॉइड के लिए क्रोम पर काम कर रहे मेरे ऐप पर रीडायरेक्ट कैसे कर सकता हूं?

संपादित करें: मुझे पता है कि आप उपयोग कर सकते हैं एक आशय

window.location = "intent://#Intent;package=com.mycoolapp;scheme=mycoolapp;launchFlags=268435456;end;"; 

यह नहीं है जो मैं चाहता क्योंकि यह अगर एप्लिकेशन इंस्टॉल नहीं है गूगल पर एप्लिकेशन पेज खेलने की शुरूआत। क्या कोई तरीका है कि यह Google play पर रीडायरेक्ट नहीं होगा?

+0

नीचे जोड़ने पाने के लिए ... ब्राउज़र पूछना होगा उपयोगकर्ता ब्राउज़र या आपके ऐप के साथ कार्रवाई को पूरा करने के लिए (यदि स्थापित है) – Selvin

+0

@ सेल्विन क्या आप अपने विचार के लिए उत्तर पोस्ट कर सकते हैं? – confile

+0

यह RGraham के उत्तर – Selvin

उत्तर

4

आपको कस्टम प्रोटोकॉल पर अपना ऐप लॉन्च करने के लिए की आवश्यकता नहीं है। यह किसी भी पते के लिए काम करेगा, उदाहरण के लिए अपने AndroidManifest.xml में:

<intent-filter> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <category android:name="android.intent.category.BROWSABLE" /> 
    <data android:host="www.mycoolapp.com" /> 
    <data android:scheme="http" /> 
    <data android:pathPattern="/Android" /> 
</intent-filter> 

इसका मतलब है आप का उपयोग कर उपयोगकर्ता प्रत्यक्ष कर सकते हैं: एप्लिकेशन इंस्टॉल है

window.location = "/Android"; 

, तो Android "ओपन के साथ" करने के लिए संकेत देगा। यदि नहीं, तो उपयोगकर्ता को अपने ब्राउज़र में/एंड्रॉइड पेज पर ले जाया जाएगा।

+0

जैसा ही है, मैं कस्टम यूआरएल का उपयोग करता हूं क्योंकि मैं आईओएस के लिए एक ही यूआरएल योजना का उपयोग करता हूं, इससे चीजों को और अधिक आसान बना दिया जाता है। – confile

+0

@confile एक त्वरित ब्राउज़र-स्नीफ करें। एंड्रॉइड के लिए आईओएस और उपर्युक्त के लिए आपके पास जो भी है उसका उपयोग करें। – CodingIntrigue

+0

यदि ऐप इंस्टॉल नहीं है window.location = "/ Android"; ब्राउज़र में एक खाली पृष्ठ खुल जाएगा। यह वह नहीं है जिसकी मुझे चाहत है। यदि ऐप इंस्टॉल नहीं है तो उपयोगकर्ता को वर्तमान पृष्ठ पर रहना चाहिए। – confile

0
Add this in manifest file,note the scheme. 

     <intent-filter> 
      <data android:scheme="startci" /> 
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
     </intent-filter> 

एचटीएमएल में कोड दें, यह योजना मैनिफेस्ट फ़ाइल में समान है।

<a href="intent:#Intent;scheme=startci;package=gramener.star;end">click here</a> 

आप अपने ऐप में पैरामीटर जोड़ने के लिए इस

<a href="intent:#Intent;scheme=startci://open?url_param=hi santhosh;package=gramener.star;end">click here</a> 

का उपयोग एप्लिकेशन इंस्टॉल नहीं है यदि ऐसा है तो आप किसी अन्य पृष्ठ पर रीडायरेक्ट करना चाहते हैं इस तरह वापस आने यूआरएल जोड़ने चाहते हैं।यूआरएल एन्कोड किया जाना चाहिए

<a href="intent:#Intent;scheme=startci://open?url_param=hi santhosh;package=gramener.star;S.browser_fallback_url=http%3A%2F%2Fzxing.org;end">click here</a> 

पैरामीटर कोड

Uri data = this.getIntent().getData(); 
    if (data != null && data.isHierarchical()) { 
     if (data.getQueryParameter("url_param") != null) { 
      String param = data.getQueryParameter("url_param");    
      Log.d("the param is",param); 
       //do something here 
     } 
    } 
एंड्रॉयड का उपयोग नहीं करते "विशेष" योजना ... आशय फिल्टर में http योजना का उपयोग पर
+0

यह काम कर रहा है बटन यह पहले से ऐप शुरू करता है ... –

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

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