Глубокая работа работает, но нет навигации к предполагаемому экрану с помощью реагирующей навигации - PullRequest
4 голосов
/ 24 сентября 2019

Я нахожусь на Android и хочу использовать DeepLink, чтобы открыть определенный экран с помощью реагирующей навигации.

Вот мой манифест:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.samtbook">

<application
        android:name=".MainApplication"
        android:label="@string/app_name"
        android:icon="@mipmap/ic_launcher"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:allowBackup="false"
        android:theme="@style/AppTheme"
        android:supportsRtl="false"
        android:usesCleartextTraffic="true"
>
    <activity
            android:launchMode="singleTask"
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
            android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
        <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="http" android:host="samtbook.me"/>
        </intent-filter>
    </activity>
    <activity android:name="com.facebook.react.devsupport.DevSettingsActivity"/>
    <meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="API_KET"/> // HIDDEN
</application>

и здесьэто ссылка, которую я использую:

http://samtbook.me/test/

, и я зарегистрировал свой deepLink следующим образом:

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

    handleOpenURL = (event) => {
    this.navigate(event.url);
    };
    navigate = (url) => {
      this.props.navigation.navigate('TestScreen');
    };

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

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

Ответы [ 2 ]

2 голосов
/ 25 сентября 2019

Использовать глубокую линковку реагирования навигации, указанную в документе:
https://reactnavigation.org/docs/en/deep-linking.html

1 голос
/ 24 сентября 2019

Схема Http определяется как веб-URL. Просто измените свою схему на собственную схему, например, «myapp», и измените свой URL на myapp: //samtbook.me/test/ удачи!

...