2016-10-08 6 views
10

हाय मैं लिंकिंग परिवर्तनों को सुनने के लिए प्रतिक्रिया-मूल की लिंकिंग लाइब्रेरी का उपयोग करने की कोशिश कर रहा था और मैंने https://facebook.github.io/react-native/docs/linking.html पर दिए गए निर्देशों का पालन किया। मैं openURL का उपयोग कर बाहरी यूआरएल खोल सकता हूं लेकिन Linking.addEventListener मेरे लिए काम नहीं कर रहा है।प्रतिक्रिया-मूल लिंकिंग AddEventListener काम नहीं कर रहा

componentDidMount() { 
 
    Linking.addEventListener('url', this._handleOpenURL); 
 
}, 
 
componentWillUnmount() { 
 
    Linking.removeEventListener('url', this._handleOpenURL); 
 
}, 
 
_handleOpenURL(event) { 
 
    console.log(event.url); 
 
}

यह मुझे एक त्रुटि नहीं देता है परन्तु _handleOpenURL नहीं बुलाया जाता है जब अनुप्रयोग एक बाहरी URL को खोलता है: मैं कोड स्निपेट कॉपी किया गया।

मुझे आश्चर्य है कि यह मामला क्यों है और इसे ठीक करने के लिए मुझे क्या करना चाहिए?

+0

आप समस्या यह पता लगाने क्या, मैं एक ही बात में चल रहा हूँ। –

+0

मुझे एक ही समस्या का सामना करना पड़ रहा है। क्या किसी के पास इसका कोई समाधान है? – Zip

+0

@FreddieCabrera हाय! हां, यह ऐप के अंदर केवल कस्टम वेबव्यू के अंदर काम करने से जुड़ा हुआ है, इसलिए यदि आप किसी वेब ब्राउज़र में लिंक खोलते हैं, तो लिंकिंग lib ऐप के बाहर होने वाली घटनाओं को सुनने में सक्षम नहीं होगा। लिंकिंग श्रोता केवल ऐप के अंदर वेबव्यू पर काम करता है। –

उत्तर

0

ऐसा इसलिए है क्योंकि जब ऐप एक उद्देश्य से शुरू होता है तो लिंकिंग की एक विशिष्ट विधि होती है।

इस के साथ प्रयास करें:

componentDidMount() { 
    Linking.getInitialURL().then((ev) => { 
    if (ev) { 
     this._handleOpenURL(ev); 
    } 
    }).catch(err => { 
     console.warn('An error occurred', err); 
    }); 
    Linking.addEventListener('url', this._handleOpenURL); 
} 
संबंधित मुद्दे