Связывание в уже открытом приложении React Native для Android - PullRequest
0 голосов
/ 07 мая 2019

Я выполнил шаги, приведенные в React Native docs для связывания , и мне удалось подобрать URL-адрес, когда приложение «холодным» образом запускается по ссылке. Однако, когда приложение все еще находится в фоновом режиме, обратный вызов в getInitialURL не срабатывает, когда приложение открывается по ссылке. Я также добавил прослушиватель событий url, но он никогда не запускается, не запускается холодным способом или иным образом.

(Просто чтобы уточнить: когда я говорю «холодный старт», я имею в виду, когда приложение закрывается либо нажатием кнопки «назад» на Android, либо удалением из режима многозадачности. Я не могу разобраться, когда приложение / действие все еще активно в фоновом режиме, например, когда нажата домашняя кнопка Android или при переходе к другому приложению при нажатии уведомления.)

Как мне справиться с этим делом?

Я использую старую версию реакции-навигации (1.0.0-бета.11), но я добавил обработчик ссылок на более высоком уровне, чем самый родительский StackNavigator, поэтому я считаю, что не следует это не проблема. Вот что я сделал до сих пор:

componentDidMount() {
    Linking.getInitialURL().then(url => {
        console.log('getInitialURL', url)
    })
    Linking.addEventListener('url', this.handleOpenURL)
}

componentWillUnmount() {
    Linking.removeEventListener('url', this.handleOpenURL);
}

handleOpenURL = (event) => {
    console.log('handleOpenURL', event)
}

А вот и мой AndroidManifest.xml:

<intent-filter android:autoVerify="true">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="https" android:host="app.example.com" />
</intent-filter>

Заранее спасибо!

...