17

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

यहाँ लिंक है कि मैं

  1. http://www.domain.com/#id=abcdef123346
  2. http://www.domain.com/social/landing/abcdef123456

मैं पहले से ही दोनों लिंक रोकना और जावा regex का उपयोग करने के लिए एक अलग गतिविधि है का फैसला किया है रोकना चाहते हैं के 2 प्रकार हैं सही गतिविधि शुरू करने के लिए। हालांकि मैं तरह http://www.domain.com/abc123

<intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
      <data 
       android:scheme="http" 
       android:host="www.domain.com" 
       android:pathPattern="/#id.*" /> 
     </intent-filter> 

कुछ पर कब्जा यह वही मैं वर्तमान में टाइप 1 रोकना कोशिश कर रहा हूँ और यह काम नहीं कर रहा है किसी कारण से बिना सिर्फ इन दोनों प्रारूपों पर कब्जा नहीं कर पा रहे।

इस आशय फिल्टर सही ढंग से प्रकार को बीच में रोक 2

<intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
      <data android:scheme="http" /> 
      <data android:host="domain.com" /> 
      <data android:host="www.domain.com" /> 
      <data android:pathPrefix="/share/web" /> 
      <data android:pathPrefix="/social/landing" /> 
     </intent-filter> 

धन्यवाद,

+0

अरे @leo मैं वही चीज़ प्राप्त करना चाहता हूं, जब मैं ब्राउज़र से मोबाइल साइट लॉन्च करता हूं तो मैं अपना ऐप खोलना चाहता हूं, मैंने यहां एक ही काम किया है लेकिन यह कोई मदद नहीं करता है? – Tony

उत्तर

3

मुझे लगता है कि स्ट्रिंग कि pathPattern मिलान है "/", और "#ID ..." क्योंकि छोड़ दिया जाता है यह टुकड़े का हिस्सा है। यदि आपने इसके बजाय http://www.domain.com/id/abcdef123456 का उपयोग किया है, तो पथपटल "/id/.*" से मेल खा सकता है क्योंकि यह पथ का हिस्सा है।

+0

यह निश्चित रूप से एक संभावना है, लेकिन सर्वर व्यवहार को बदलने में शामिल है, उम्मीद कर रहा था कि ऐसा करने की ज़रूरत नहीं है। कोई अन्य संभावनाएं? – Leo

+0

मुझे पथ फ्रेगमेंट के लिए कोई विकल्प नहीं दिख रहा है। क्या आप बस सबकुछ पकड़ सकते हैं जो "/" पर जाता है और बाद में आईडी प्राप्त करता है? – user775598

+0

दुर्भाग्यवश यदि मैं उन सभी लिंकों को रोकता हूं जिनमें उनमें स्लैश है, तो मैं अपने छोटे यूआरएल को हल करने से रोक दूंगा, और यह पता लगाने में सक्षम नहीं हूं कि वास्तविक लक्ष्य क्या था। – Leo