2016-10-08 2 views
10

Привет, я пытался использовать библиотеку ссылок React-Native, чтобы прослушать ссылки на изменения, и я выполнил инструкции на https://facebook.github.io/react-native/docs/linking.html. Я могу открыть внешний URL, используя openURL, но Linking.addEventListener, похоже, не работает для меня. Я скопировал фрагмент кода:React-Native Linking 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 Привет! Да, оказывается, что соединение только работает внутри пользовательского webview внутри приложения, поэтому, если вы откроете ссылку в веб-браузере, ссылка lib не сможет прослушивать события, происходящие вне приложения. Связывание слушателя работает только с webview внутри приложения. –

ответ

0

Это связано с тем, что у Linking есть определенный метод, когда приложение начинается с намерения.

Попробуйте с этим:

componentDidMount() { 
    Linking.getInitialURL().then((ev) => { 
    if (ev) { 
     this._handleOpenURL(ev); 
    } 
    }).catch(err => { 
     console.warn('An error occurred', err); 
    }); 
    Linking.addEventListener('url', this._handleOpenURL); 
} 
Смежные вопросы